sig
type result =
(TypeCore.env * Derivations.derivation, Derivations.derivation)
Either.either
val unify : TypeCore.env -> TypeCore.var -> TypeCore.var -> TypeCore.env
val add : TypeCore.env -> TypeCore.var -> TypeCore.typ -> TypeCore.env
val add_perm : TypeCore.env -> TypeCore.typ -> TypeCore.env
val sub :
TypeCore.env -> TypeCore.var -> TypeCore.typ -> Permissions.result
val sub_type :
TypeCore.env -> TypeCore.typ -> TypeCore.typ -> Permissions.result
val sub_perm : TypeCore.env -> TypeCore.typ -> Permissions.result
val add_hint : TypeCore.name option -> string -> TypeCore.name option
val sub_constraint :
TypeCore.env -> TypeCore.mode_constraint -> Permissions.result
val keep_only_duplicable : TypeCore.env -> TypeCore.env
val instantiate_flexible :
TypeCore.env -> TypeCore.var -> TypeCore.typ -> TypeCore.env option
val import_flex_instanciations :
TypeCore.env -> TypeCore.env -> TypeCore.env
val drop_derivation : Permissions.result -> TypeCore.env option
val safety_check : TypeCore.env -> unit
end