ocaml-base-compiler

Official release 4.14.0
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library ocamlcommon
Module Errortrace . Subtype
type 'a elt =
| Diff of 'a diff
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

type nonrec error = private {
trace : error_trace;
unification_trace : unification error;
}
val error : trace:error_trace -> unification_trace:unification_error_trace -> error
val map : ( 'a -> 'b ) -> 'a t -> 'b t