Module ExplicitTrace.MakeTraceElem

Parameters

module Elem : Element

Signature

type elem_t = Elem.t
type t = private {
  1. elem : elem_t;
  2. loc : IBase.Location.t;
  3. 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 t := t
include IStdlib.PrettyPrintable.PrintableOrderedType with type t := t
include Stdlib.Set.OrderedType with type t := t
val compare : t -> t -> int
include IStdlib.PrettyPrintable.PrintableType with type t := 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 elt = t

A powerset of traces.