|
|
|
|
|
|
| Synopsis |
|
|
|
| Documentation |
|
| type Tree = [Top] |
|
| data Top |
| Top level expression.
| | Constructors | | PNil | | | PBind Var Type Exp | A Top level binding.
| | PSuper Var Type Type Exp | A supercombinator. var, value type, operational type, exp.
| | PExtern Var Type Type | A function or effect imported from somewhere else.
name, value type, operational type
| | PData Var [Var] [(Var, [DataField Exp Type])] | | | PCtor Var Type Type | Constructor: ctor name, value type, operational type
| | PEffect Var | A global effect.
|
| Instances | |
|
|
| data Exp |
| Constructors | | XNothing | Empty expression
In contrast to XNil, an XNothing represents some part of the
tree with is _supposed_ to be empty between stages
| | XNil | Nil expression.
XNil is used internally by compiler stages as a place holder for
information that isn't present at the moment. If Core.Lint finds any
XNil's _after_ a stage has completed then it will complain.
| | XAnnot Annot Exp | Annotation.
| | XVar Var | A variable.
| | XLambda Var Type Exp | Lambda abstraction.
Invariant: exp must be an XLambda or an XDo.
| | XApp Exp Type | Type application.
| | XAppE Exp Exp [Effect] | Function application with effects.
| | XDo [Stmt] | Do expression.
| | XMatchE [Effect] [Alt] | Matching of constructors and constants with effects.
Matching causes read effects on the match targets.
| | XConst Const | Literals.
| | XUnit | The unit value.
| | XProj Exp Proj Type Type [Effect] | | | XCall Var [Exp] [Effect] | Call a super, args, effects
| | XCallApp Var Int [Exp] [Effect] | Call then apply super. name, super airity, args, effs
| | XApply Var [Exp] [Effect] | Apply a thunk. thunk name, args, effects
| | XCurry Var Int [Exp] | Build a thunk. combinator name, super airity, args
| | XSuspend Var [Exp] | | | XAppF [Exp] | | | XAppFP Exp (Maybe [Effect]) | | | XType Type | | | XAt Var Exp | | | XLifted Var [Var] | Place holder for a lambda abstraction that was lifted out
name of lifted function.
Name of supercombinator, vars which were free in lifted expression.
|
| Instances | |
|
|
| data Proj |
| Constructors | | Instances | |
|
|
| data Stmt |
| Statments, sequencing.
| | Constructors | | SComment String | | | SStmt Exp | Statement.
| | SBind Var Type Exp | Let binding.
|
| Instances | |
|
|
| data Attr |
| Constructors | | Instances | | Data Attr | | Eq Attr | | Show Attr | | Typeable Attr |
|
|
|
| data Alt |
| A match alternative.
| | Constructors | | Instances | |
|
|
| data Guard |
| Constructors | | GDefault | Matches any value.
| | GUnit Exp | Exp must match with unit value.
| | GConst Exp Const | Exp must evaluate to const.
| | GCon Exp Var [(Label, Var, Type)] | Exp must match constructor, then bind args.
|
| Instances | |
|
|
| data Label |
| Constructors | | Instances | |
|
|
| data Type |
| Constructors | | TNil | | | TNothing | | | TVar Var | | | TVarC Var Var | | | TForall [(Var, Type)] Type | forall quantification.
Each var appears along with its kind.
| | TFun Type Type | Functions without effect or environment annotations
Used for operational types.
| | TFunEE Type Type [Effect] [Exp] | Functions with an effect and an environment.
Used for types of value expressions.
| | TCon Var [Attr] [Type] | Type constructor.
| | TColored Var Type | Colored modes.
| | TMerge [Effect] | Some collection of effects
| | TKType | The type kind.
| | TKRegion | The region kind.
| | TKEffect | The effect kind.
| | TTypeL Type [(Var, ([Effect], [Exp]))] | A labeled type with closure info.
| | TFunV Type Type (Maybe Var) | A labeled function.
|
| Instances | |
|
|
| data Effect |
| Constructors | | Instances | |
|
|
| data Annot |
| Expression annotations.
Used internally, and for debugging.
| | Constructors | | NString String | Some string: for debugging.
| | NType Type | Gives the type for an expression.
|
| Instances | |
|
|
| Produced by Haddock version 0.7 |