Module type ExplicitTrace.TraceElem

type elem_t
type t = private {
elem : elem_t;
loc : IBase.Location.t;
trace : CallSite.t list;
}

An elem which occured at loc, after the chain of steps (usually calls) in trace.

Both pp and describe simply call the same function on the trace element.

include Element with type Element.t := t
include IStdlib.PrettyPrintable.PrintableOrderedType
include IStdlib.IStd.Caml.Set.OrderedType
type t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := t
type t
val pp : IStdlib.PrettyPrintable.F.formatter -> t -> unit
val describe : Stdlib.Format.formatter -> t -> unit

Pretty printer used for trace construction; pp is used for debug output.

val make : elem_t -> IBase.Location.t -> t
val map : f:(elem_t -> elem_t) -> t -> t
val get_loc : t -> IBase.Location.t

Starting location of the trace: this is either loc if trace==[], or the head of trace.

val make_loc_trace : ?⁠nesting:int -> t -> Errlog.loc_trace
val with_callsite : t -> CallSite.t -> t

Push given callsite onto trace, extending the call chain by one.

module FiniteSet : FiniteSet with type FiniteSet.elt = t

A powerset of traces.