Errortrace.Subtype
type 'a t = 'a elt list
Just as outside Subtype
, we split traces, completed traces, and complete errors. However, in a minor asymmetry, the name Subtype.error_trace
corresponds to the outside error
type, and Subtype.error
corresponds to the outside *_error
types (e.g., unification_error
). This error
type has the invariant that the subtype trace is nonempty; note that no such invariant is imposed on the unification trace.
type trace = Types.type_expr t
type error_trace = expanded_type t
type unification_error_trace = unification error
To avoid shadowing
val error :
trace:error_trace ->
unification_trace:unification_error_trace ->
error