Safe Haskell | None |
---|---|
Language | Haskell2010 |
Representation of Haskell expressions
- data Expr dom stage
- = Var { }
- | Lit { }
- | InfixApp { }
- | PrefixApp { }
- | App { }
- | Lambda {
- _exprBindings :: AnnList Pattern dom stage
- _exprInner :: Ann Expr dom stage
- | Let {
- _exprFunBind :: AnnList LocalBind dom stage
- _exprInner :: Ann Expr dom stage
- | If { }
- | MultiIf {
- _exprIfAlts :: AnnList GuardedCaseRhs dom stage
- | Case { }
- | Do { }
- | Tuple {
- _tupleElems :: AnnList Expr dom stage
- | UnboxedTuple {
- _tupleElems :: AnnList Expr dom stage
- | TupleSection {
- _tupleSectionElems :: AnnList TupSecElem dom stage
- | UnboxedTupSec {
- _tupleSectionElems :: AnnList TupSecElem dom stage
- | List {
- _listElems :: AnnList Expr dom stage
- | ParArray {
- _listElems :: AnnList Expr dom stage
- | Paren {
- _exprInner :: Ann Expr dom stage
- | LeftSection { }
- | RightSection { }
- | RecCon {
- _exprRecName :: Ann Name dom stage
- _exprRecFields :: AnnList FieldUpdate dom stage
- | RecUpdate {
- _exprInner :: Ann Expr dom stage
- _exprRecFields :: AnnList FieldUpdate dom stage
- | Enum { }
- | ParArrayEnum { }
- | ListComp { }
- | ParArrayComp { }
- | TypeSig { }
- | ExplTypeApp { }
- | VarQuote {
- _quotedName :: Ann Name dom stage
- | TypeQuote {
- _quotedName :: Ann Name dom stage
- | BracketExpr { }
- | Splice {
- _innerExpr :: Ann Splice dom stage
- | QuasiQuoteExpr {
- _exprQQ :: Ann QuasiQuote dom stage
- | ExprPragma {
- _exprPragma :: Ann ExprPragma dom stage
- | Proc { }
- | ArrowApp { }
- | LamCase { }
- | StaticPtr {
- _exprInner :: Ann Expr dom stage
- data FieldUpdate dom stage
- = NormalFieldUpdate {
- _fieldName :: Ann Name dom stage
- _fieldValue :: Ann Expr dom stage
- | FieldPun {
- _fieldUpdateName :: Ann Name dom stage
- | FieldWildcard {
- _fieldWildcard :: Ann FieldWildcard dom stage
- = NormalFieldUpdate {
- data FieldWildcard dom stage = FldWildcard
- data TupSecElem dom stage
- = Present {
- _tupSecExpr :: Ann Expr dom stage
- | Missing
- = Present {
- data Alt' expr dom stage = Alt {
- _altPattern :: Ann Pattern dom stage
- _altRhs :: Ann (CaseRhs' expr) dom stage
- _altBinds :: AnnMaybe LocalBinds dom stage
- type Alt = Alt' Expr
- type CmdAlt = Alt' Cmd
- data CaseRhs' expr dom stage
- = UnguardedCaseRhs {
- _rhsCaseExpr :: Ann expr dom stage
- | GuardedCaseRhss {
- _rhsCaseGuards :: AnnList (GuardedCaseRhs' expr) dom stage
- = UnguardedCaseRhs {
- type CaseRhs = CaseRhs' Expr
- type CmdCaseRhs = CaseRhs' Cmd
- data GuardedCaseRhs' expr dom stage = GuardedCaseRhs {
- _caseGuardStmts :: AnnList RhsGuard dom stage
- _caseGuardExpr :: Ann expr dom stage
- type GuardedCaseRhs = GuardedCaseRhs' Expr
- type CmdGuardedCaseRhs = GuardedCaseRhs' Cmd
- data ExprPragma dom stage
- = CorePragma {
- _pragmaStr :: Ann StringNode dom stage
- | SccPragma {
- _pragmaStr :: Ann StringNode dom stage
- | GeneratedPragma {
- _pragmaSrcRange :: Ann SourceRange dom stage
- = CorePragma {
- data SourceRange dom stage = SourceRange {
- _srFileName :: Ann StringNode dom stage
- _srFromLine :: Ann Number dom stage
- _srFromCol :: Ann Number dom stage
- _srToLine :: Ann Number dom stage
- _srToCol :: Ann Number dom stage
- data Number dom stage = Number {}
- data Cmd dom stage
- = ArrowAppCmd { }
- | ArrowFormCmd { }
- | AppCmd {
- _cmdInnerCmd :: Ann Cmd dom stage
- _cmdApplied :: Ann Expr dom stage
- | InfixCmd {
- _cmdLeftCmd :: Ann Cmd dom stage
- _cmdOperator :: Ann Name dom stage
- _cmdRightCmd :: Ann Cmd dom stage
- | LambdaCmd { }
- | ParenCmd { }
- | CaseCmd { }
- | IfCmd { }
- | LetCmd { }
- | DoCmd { }
Documentation
Haskell expressions
Var | A variable or a data constructor ( |
Lit | Primitive literal |
InfixApp | Infix operator application ( |
PrefixApp | Prefix operator application ( |
App | Function application ( |
Lambda | Lambda expression ( |
| |
Let | Local binding ( |
| |
If | If expression ( |
MultiIf | Multi way if expressions with |
| |
Case | Pattern matching expression ( |
Do | Do-notation expressions ( |
Tuple | Tuple expression ( |
| |
UnboxedTuple | |
| |
TupleSection | Tuple section, enabled with |
| |
UnboxedTupSec | |
| |
List | List expression: |
| |
ParArray | Parallel array expression: |
| |
Paren | |
| |
LeftSection | Left operator section: |
RightSection | Right operator section: |
RecCon | Record value construction: |
| |
RecUpdate | Record value update: |
| |
Enum | Enumeration expression ( |
ParArrayEnum | Parallel array enumeration ( |
ListComp | List comprehension ( |
ParArrayComp | Parallel array comprehensions |
TypeSig | Explicit type signature ( |
ExplTypeApp | Explicit type application ( |
VarQuote |
|
| |
TypeQuote |
|
| |
BracketExpr | Template haskell bracket expression |
Splice | Template haskell splice expression, for example: |
| |
QuasiQuoteExpr | Template haskell quasi-quotation: |
| |
ExprPragma | |
| |
Proc | Arrow definition: |
ArrowApp | Arrow application: |
LamCase | Lambda case ( |
StaticPtr | Static pointer expression ( |
|
data FieldUpdate dom stage Source #
Field update expressions
NormalFieldUpdate | Update of a field ( |
| |
FieldPun | Update the field to the value of the same name ( |
| |
FieldWildcard | Update the fields of the bounded names to their values ( |
|
type Rep (FieldUpdate dom stage) Source # | |
data FieldWildcard dom stage Source #
Marker for a field wildcard. Only needed to attach semantic information in a type-safe way.
type Rep (FieldWildcard dom stage) Source # | |
data TupSecElem dom stage Source #
An element of a tuple section that can be an expression or missing (indicating a value from a parameter)
Present | An existing element in a tuple section |
| |
Missing | A missing element in a tuple section |
type Rep (TupSecElem dom stage) Source # | |
data Alt' expr dom stage Source #
Clause of case expression
Alt | |
|
data CaseRhs' expr dom stage Source #
Right hand side of a match (possible with guards): ( = 3
or | x == 1 = 3; | otherwise = 4
)
UnguardedCaseRhs | |
| |
GuardedCaseRhss | |
|
type CmdCaseRhs = CaseRhs' Cmd Source #
data GuardedCaseRhs' expr dom stage Source #
A guarded right-hand side of pattern matches binding ( | x > 3 -> 2
)
GuardedCaseRhs | |
|
type Rep (GuardedCaseRhs' expr dom stage) Source # | |
type GuardedCaseRhs = GuardedCaseRhs' Expr Source #
type CmdGuardedCaseRhs = GuardedCaseRhs' Cmd Source #
data ExprPragma dom stage Source #
Pragmas that can be applied to expressions
CorePragma | |
| |
SccPragma | |
| |
GeneratedPragma | |
|
type Rep (ExprPragma dom stage) Source # | |
data SourceRange dom stage Source #
In-AST source ranges (for generated pragmas)
SourceRange | |
|
type Rep (SourceRange dom stage) Source # | |
ArrowAppCmd | |
ArrowFormCmd | |
AppCmd | |
| |
InfixCmd | |
| |
LambdaCmd | |
ParenCmd | |
CaseCmd | |
IfCmd | |
LetCmd | |
DoCmd | |