sig
val extract_type : MiniAst.expression -> MiniAst.typ * MiniAst.expression
type recursive_value_definition_kind =
Implicit of MiniAst.name * MiniAst.expression
| Explicit of MiniAst.name * MiniAst.typ * MiniAst.expression
| NotPVar
val explicit_or_implicit :
MiniAst.pattern ->
MiniAst.expression -> MiniTypes.recursive_value_definition_kind
val variables_of_typ : MiniAst.typ -> Misc.StringSet.t
val arrow :
MiniTypingEnvironment.environment ->
Constraint.variable CoreAlgebra.arterm ->
Constraint.variable CoreAlgebra.arterm ->
Constraint.variable CoreAlgebra.arterm
val arity : MiniAst.typ -> int
val tycon :
MiniTypingEnvironment.environment ->
MultiEquation.tname ->
Constraint.variable CoreAlgebra.arterm list ->
Constraint.variable CoreAlgebra.arterm
val intern :
Positions.position ->
MiniTypingEnvironment.environment -> MiniAst.typ -> Constraint.crterm
val intern_let_env :
Positions.position ->
MiniTypingEnvironment.environment ->
MultiEquation.tname list ->
MultiEquation.tname list ->
Constraint.variable list * Constraint.variable list *
MiniTypingEnvironment.environment
val intern_scheme :
Positions.position ->
MiniTypingEnvironment.environment ->
string ->
MultiEquation.tname list ->
MiniAst.typ -> (Constraint.crterm, Constraint.variable) Constraint.scheme
end