Errortraceval print_pos : Format.formatter -> position -> unitmap_diff f {expected;got} is {expected=f expected; got=f got}
type 'a escape_kind = | Constructor of Path.t| Univ of Types.type_expr| Self| Module_type of Path.t| Equation of 'a| ConstraintScope escape related errors
val short : Types.type_expr -> desctype 'variety variant = | Incompatible_types_for : string -> _ variant| No_intersection : unification variant| Fixed_row : position
* fixed_row_case
* Types.fixed_explanation -> unification variant| Openness : position -> comparison varianttype ('a, 'variety) elt = | Diff : 'a diff -> ('a, _) elt| Variant : 'variety variant -> ('a, 'variety) elt| Obj : 'variety obj -> ('a, 'variety) elt| Escape : 'a escape -> ('a, _) elt| Incompatible_fields : {name : string;diff : Types.type_expr diff;} -> ('a, _) elt| Rec_occur : Types.type_expr * Types.type_expr -> ('a, _) eltval diff : Types.type_expr -> Types.type_expr -> (desc, _) eltval flatten :
(Types.type_expr -> Types.type_expr -> 'a) ->
'variety t ->
('a, 'variety) elt listflatten f trace flattens all elements of type desc in trace to either f x.t expanded if x.expanded=Some expanded or f x.t x.t otherwise
val incompatible_fields :
string ->
Types.type_expr ->
Types.type_expr ->
(desc, _) eltmodule Subtype : sig ... end