Safe Haskell | None |
---|---|
Language | Haskell2010 |
Term representation in the CoreHW language: System F + LetRec + Case
Documentation
Term representation in the CoreHW language: System F + LetRec + Case
Var Type TmName | Variable reference |
Data DataCon | Datatype constructor |
Literal Literal | Literal |
Prim Text Type | Primitive |
Lam (Bind Id Term) | Term-abstraction |
TyLam (Bind TyVar Term) | Type-abstraction |
App Term Term | Application |
TyApp Term Type | Type-application |
Letrec (Bind (Rec [LetBinding]) Term) | Recursive let-binding |
Case Term [Bind Pat Term] | Case-expression: subject, type of alternatives, list of alternatives |
Eq Term | |
Ord Term | |
Show Term | |
Rep Term | |
NFData Term | |
Alpha Term | |
Pretty Term | |
(Sat (ctx0 Type), Sat (ctx0 TmName), Sat (ctx0 DataCon), Sat (ctx0 Literal), Sat (ctx0 Text), Sat (ctx0 (Bind Id Term)), Sat (ctx0 (Bind TyVar Term)), Sat (ctx0 Term), Sat (ctx0 (Bind (Rec [LetBinding]) Term)), Sat (ctx0 [Bind Pat Term])) => Rep1 ctx Term | |
Subst Term Text | |
Subst Term TyCon | |
Subst Term Term | |
Subst Term Type | |
Subst Term TyVar | |
Subst Term Id | |
Subst Term DataCon | |
Subst Term PrimRep | |
Subst Term AlgTyConRhs | |
Subst Term Literal | |
Subst Term Pat | |
Subst Term LitTy | |
Subst Term ConstTy | |
Subst Type Term | |
Subst Type Id | |
NFData (Name Term) | |
Pretty (Var Term) | |
Pretty (Id, Term) |
type LetBinding = (Id, Embed Term) Source
Binding in a LetRec construct