symantic-lib-0.0.2.20170703: Symantics for common types.

Safe HaskellNone
LanguageHaskell2010

Language.Symantic.Lib.Tuple2

Contents

Description

Symantic for (,).

Synopsis

Class Sym_Tuple2

class Sym_Tuple2 term where Source #

Methods

tuple2 :: term a -> term b -> term (a, b) Source #

fst :: term (a, b) -> term a Source #

snd :: term (a, b) -> term b Source #

tuple2 :: Sym_Tuple2 (UnT term) => Trans term => term a -> term b -> term (a, b) Source #

fst :: Sym_Tuple2 (UnT term) => Trans term => term (a, b) -> term a Source #

snd :: Sym_Tuple2 (UnT term) => Trans term => term (a, b) -> term b Source #

Instances

Sym_Tuple2 Eval Source # 

Methods

tuple2 :: Eval a -> Eval b -> Eval (a, b) Source #

fst :: Eval (a, b) -> Eval a Source #

snd :: Eval (a, b) -> Eval b Source #

Sym_Tuple2 View Source # 

Methods

tuple2 :: View a -> View b -> View (a, b) Source #

fst :: View (a, b) -> View a Source #

snd :: View (a, b) -> View b Source #

(Sym_Tuple2 term, Sym_Lambda term) => Sym_Tuple2 (BetaT term) Source # 

Methods

tuple2 :: BetaT term a -> BetaT term b -> BetaT term (a, b) Source #

fst :: BetaT term (a, b) -> BetaT term a Source #

snd :: BetaT term (a, b) -> BetaT term b Source #

(Sym_Tuple2 r1, Sym_Tuple2 r2) => Sym_Tuple2 (Dup r1 r2) Source # 

Methods

tuple2 :: Dup r1 r2 a -> Dup r1 r2 b -> Dup r1 r2 (a, b) Source #

fst :: Dup r1 r2 (a, b) -> Dup r1 r2 a Source #

snd :: Dup r1 r2 (a, b) -> Dup r1 r2 b Source #

Terms

tyTuple2 :: Source src => LenInj vs => Type src vs a -> Type src vs b -> Type src vs (a, b) Source #

teTuple2 :: TermDef (,) '[Proxy a, Proxy b] (() #> (a -> b -> (a, b))) Source #

teTuple2_fst :: TermDef (,) '[Proxy a, Proxy b] (() #> ((a, b) -> a)) Source #

teTuple2_snd :: TermDef (,) '[Proxy a, Proxy b] (() #> ((a, b) -> b)) Source #

Orphan instances

ClassInstancesFor (* -> * -> *) (,) Source # 

Methods

proveConstraintFor :: Source src => proxy c -> Type Constraint src vs q -> Maybe (Qual q) #

TypeInstancesFor (* -> * -> *) (,) Source # 

Methods

expandFamFor :: Source src => proxy c -> Len Type vs -> Const kt src fam -> Types src vs ts -> Maybe (Type kt src vs (Fam kt fam ts)) #

NameTyOf (* -> * -> *) (,) Source # 

Methods

nameTyOf :: proxy c -> Mod NameTy #

isNameTyOp :: proxy c -> Bool #

FixityOf (* -> * -> *) (,) Source # 

Methods

fixityOf :: proxy c -> Maybe Fixity #

(Source src, SymInj (* -> * -> *) ss (,)) => ModuleFor (* -> * -> *) src ss (,) Source # 

Methods

moduleFor :: (PathMod, Module ss (,)) #

(Gram_Source src g, Gram_Alt g, Gram_Rule g, Gram_Comment g, Gram_Term src ss g, SymInj (* -> * -> *) ss (,)) => Gram_Term_AtomsFor (* -> * -> *) src ss g (,) Source # 

Methods

g_term_atomsFor :: [CF (,) (AST_Term ss g)] #