Errortrace.Subtypetype 'a t = 'a elt listJust 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 ttype error_trace = expanded_type ttype unification_error_trace = unification errorTo avoid shadowing
val error :
trace:error_trace ->
unification_trace:unification_error_trace ->
error