Copyright | (C) 2012-2016 University of Twente 2017 Google Inc. |
---|---|
License | BSD2 (see the file LICENSE) |
Maintainer | Christiaan Baaij <christiaan.baaij@gmail.com> |
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 !Type [Alt] | Case-expression: subject, type of alternatives, list of alternatives |
Cast !Term !Type !Type | Cast a term from one type to another |
Instances
Patterns in the LHS of a case-decomposition
DataPat !(Embed DataCon) !(Rebind [TyVar] [Id]) | Datatype pattern, '[TyVar]' bind existentially-quantified type-variables of a DataCon |
LitPat !(Embed Literal) | Literal pattern |
DefaultPat | Default pattern |