sig
val bind_data_type_group_in_toplevel_items :
TypeCore.env ->
TypeCore.data_type_group ->
ExpressionsCore.toplevel_item list ->
TypeCore.env * ExpressionsCore.toplevel_item list * TypeCore.var list *
(TypeCore.var * Datacon.name * SurfaceSyntax.datacon_info) list
val bind_data_type_group_in_expr :
TypeCore.env ->
TypeCore.data_type_group ->
ExpressionsCore.expression ->
TypeCore.env * ExpressionsCore.expression * TypeCore.var list *
(TypeCore.var * Datacon.name * SurfaceSyntax.datacon_info) list
val resolve_branch : TypeCore.var -> TypeCore.branch -> TypeCore.branch
val e_unit : ExpressionsCore.expression
val p_unit : ExpressionsCore.pattern
val eunloc : ExpressionsCore.expression -> ExpressionsCore.expression
val tsubst_expr :
TypeCore.typ ->
int -> ExpressionsCore.expression -> ExpressionsCore.expression
type substitution_kit = {
subst_type : TypeCore.typ -> TypeCore.typ;
subst_expr : ExpressionsCore.expression -> ExpressionsCore.expression;
subst_def : ExpressionsCore.definitions -> ExpressionsCore.definitions;
subst_toplevel :
ExpressionsCore.toplevel_item list ->
ExpressionsCore.toplevel_item list;
subst_pat : ExpressionsCore.pattern list -> ExpressionsCore.pattern list;
vars : TypeCore.var list;
names : Variable.name list;
}
val bind_evars :
TypeCore.env ->
TypeCore.type_binding list -> TypeCore.env * Expressions.substitution_kit
val bind_vars :
TypeCore.env ->
SurfaceSyntax.type_binding list ->
TypeCore.env * Expressions.substitution_kit
val bind_patexprs :
TypeCore.env ->
ExpressionsCore.rec_flag ->
(ExpressionsCore.pattern * ExpressionsCore.expression) list ->
TypeCore.env *
(ExpressionsCore.pattern * ExpressionsCore.expression) list *
Expressions.substitution_kit
module ExprPrinter :
sig
val print_maybe_qualified_datacon :
Datacon.name SurfaceSyntax.maybe_qualified -> MzPprint.document
val pmaybe_qualified_datacon :
Buffer.t -> Datacon.name SurfaceSyntax.maybe_qualified -> unit
val print_datacon_reference :
SurfaceSyntax.datacon_reference -> MzPprint.document
val print_patexpr :
TypeCore.env ->
ExpressionsCore.pattern * ExpressionsCore.expression ->
MzPprint.document
val print_patexprs :
TypeCore.env ->
(ExpressionsCore.pattern * ExpressionsCore.expression) list ->
MzPprint.document
val print_pat :
TypeCore.env -> ExpressionsCore.pattern -> MzPprint.document
val print_tapp :
TypeCore.env -> ExpressionsCore.tapp -> MzPprint.document
val print_expr :
TypeCore.env -> ExpressionsCore.expression -> MzPprint.document
val print_rec_flag : ExpressionsCore.rec_flag -> MzPprint.document
val print_ebinder :
TypeCore.env ->
TypeCore.type_binding * TypeCore.flavor -> MzPprint.document
val print_binder :
TypeCore.env ->
(Variable.name * Kind.kind * TypeCore.location) * TypeCore.flavor ->
MzPprint.document
val print_definitions :
TypeCore.env -> ExpressionsCore.definitions -> MzPprint.document
val print_sig_item :
TypeCore.env -> Variable.name * TypeCore.typ -> MzPprint.document
val psigitem :
Buffer.t -> TypeCore.env * (Variable.name * TypeCore.typ) -> unit
val pdefinitions :
Buffer.t -> TypeCore.env * ExpressionsCore.definitions -> unit
val pexpr :
Buffer.t -> TypeCore.env * ExpressionsCore.expression -> unit
val ppat : Buffer.t -> TypeCore.env * ExpressionsCore.pattern -> unit
end
end