symantic-lib-0.0.5.20190614: 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 #

Minimal complete definition

Nothing

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 View Source # 
Instance details

Defined in Language.Symantic.Lib.Tuple2

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 Eval Source # 
Instance details

Defined in Language.Symantic.Lib.Tuple2

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 term, Sym_Lambda term) => Sym_Tuple2 (BetaT term) Source # 
Instance details

Defined in Language.Symantic.Lib.Tuple2

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 # 
Instance details

Defined in Language.Symantic.Lib.Tuple2

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 # 
Instance details

Methods

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

TypeInstancesFor (,) Source # 
Instance details

Methods

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

NameTyOf (,) Source # 
Instance details

Methods

nameTyOf :: proxy (,) -> Mod NameTy #

isNameTyOp :: proxy (,) -> Bool #

FixityOf (,) Source # 
Instance details

Methods

fixityOf :: proxy (,) -> Maybe Fixity #

(Source src, SymInj ss (,)) => ModuleFor src ss (,) Source # 
Instance details

Methods

moduleFor :: (PathMod, Module src 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 # 
Instance details

Methods

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