Module Hardcaml.Caller_id

Optionally embed the callstack in the signal type when it is created.

When an exception occurs, the callstack is printed as part of the sexp of the signal. This is especially useful for dangling wires as it shows the construction site of the wire rather than the place that the dangling wire was detected.

By default it is Disabled. Tracing the stack within every signal can become very expensive as circuits grow. The environment variable HARDCAML_DEBUG can be set to enable tracing.

module Mode : sig ... end
type t
include Bin_prot.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
include sig ... end
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : t Bin_prot.Read.vtag_reader

This function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.

val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
val sexp_of_t : t -> Sexplib0.Sexp.t
val set_mode : Mode.t -> unit
val get : ?skip:string list -> unit -> t option
val call_stack : t -> Call_stack.t
val call_stack_opt : t option -> Call_stack.t