sig
type tag_update_info = SurfaceSyntax.tag_update_info
type field = SurfaceSyntax.field
type pattern =
PVar of Variable.name * TypeCore.location
| PTuple of ExpressionsCore.pattern list
| PConstruct of TypeCore.resolved_datacon *
(TypeCore.Field.name * ExpressionsCore.pattern) list
| POpen of TypeCore.var
| PAs of ExpressionsCore.pattern * ExpressionsCore.pattern
| PAny
type rec_flag = SurfaceSyntax.rec_flag = Nonrecursive | Recursive
type expression =
EConstraint of ExpressionsCore.expression * TypeCore.typ
| EVar of TypeCore.db_index
| EOpen of TypeCore.var
| EBuiltin of string
| ELet of ExpressionsCore.rec_flag * ExpressionsCore.patexpr list *
ExpressionsCore.expression
| ELetFlex of (TypeCore.type_binding * TypeCore.flavor) *
ExpressionsCore.expression
| ELocalType of TypeCore.data_type_group * ExpressionsCore.expression
| EBigLambdas of (TypeCore.type_binding * TypeCore.flavor) list *
ExpressionsCore.expression
| ELambda of TypeCore.typ * TypeCore.typ * ExpressionsCore.expression
| EAssign of ExpressionsCore.expression * ExpressionsCore.field *
ExpressionsCore.expression
| EAssignTag of ExpressionsCore.expression * TypeCore.resolved_datacon *
ExpressionsCore.tag_update_info
| EAccess of ExpressionsCore.expression * ExpressionsCore.field
| EAssert of TypeCore.typ
| EPack of TypeCore.typ * TypeCore.typ
| EApply of ExpressionsCore.expression * ExpressionsCore.expression
| ETApply of ExpressionsCore.expression * ExpressionsCore.tapp *
Kind.kind
| EMatch of bool * ExpressionsCore.expression *
ExpressionsCore.patexpr list
| ETuple of ExpressionsCore.expression list
| EConstruct of TypeCore.resolved_datacon *
(TypeCore.Field.name * ExpressionsCore.expression) list
| EIfThenElse of bool * ExpressionsCore.expression *
ExpressionsCore.expression * ExpressionsCore.expression
| ELocated of ExpressionsCore.expression * TypeCore.location
| EInt of int
| EExplained of ExpressionsCore.expression
| EGive of ExpressionsCore.expression * ExpressionsCore.expression
| ETake of ExpressionsCore.expression * ExpressionsCore.expression
| EOwns of ExpressionsCore.expression * ExpressionsCore.expression
| EFail
and tapp = Ordered of TypeCore.typ | Named of Variable.name * TypeCore.typ
and patexpr = ExpressionsCore.pattern * ExpressionsCore.expression
type definitions =
TypeCore.location * ExpressionsCore.rec_flag *
(ExpressionsCore.pattern * ExpressionsCore.expression) list
type sig_item = Variable.name * TypeCore.typ
type toplevel_item =
DataTypeGroup of TypeCore.data_type_group
| ValueDefinitions of ExpressionsCore.definitions
| ValueDeclaration of ExpressionsCore.sig_item
type implementation = ExpressionsCore.toplevel_item list
type interface = ExpressionsCore.toplevel_item list
val internal_ppat :
(Buffer.t -> TypeCore.env * ExpressionsCore.pattern -> unit)
Pervasives.ref
val internal_ptapp :
(Buffer.t -> TypeCore.env * ExpressionsCore.tapp -> unit) Pervasives.ref
end