sig
type result = TypeCore.env option * Derivations.derivation
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 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 safety_check : TypeCore.env -> unit
end