Module Base__.Info

include Base.Info_intf.S
type t

Serialization and comparison force the lazy message.

include sig ... end
val compare : t ‑> t ‑> int
val hash_fold_t : Base.Hash.state ‑> t ‑> Base.Hash.state
val hash : t ‑> Base.Hash.hash_value
val t_of_sexp : Base.Sexp.t ‑> t
val sexp_of_t : t ‑> Base.Sexp.t
include Base__.Invariant_intf.S with type t := t
type t
val to_string_hum : t ‑> string

to_string_hum forces the lazy message, which might be an expensive operation.

to_string_hum usually produces a sexp; however, it is guaranteed that to_string_hum (of_string s) = s.

If this string is going to go into a log file, you may find it useful to ensure that the string is only one line long. To do this, use to_string_mach t.

val to_string_mach : t ‑> string

to_string_mach t outputs t as a sexp on a single-line.

val to_string_hum_deprecated : t ‑> string

old version (pre 109.61) of to_string_hum that some applications rely on.

Calls should be replaced with to_string_mach t, which outputs more parenthesis and backslashes.

val of_string : string ‑> t
val of_lazy : string Base.Lazy.t ‑> t

Be careful that the body of the lazy or thunk does not access mutable data, since it will only be called at an undetermined later point.

val of_thunk : (unit ‑> string) ‑> t
val create : ?⁠here:Base__.Source_code_position0.t ‑> ?⁠strict:unit ‑> string ‑> 'a ‑> ('a ‑> Base.Sexp.t) ‑> t

For create message a sexp_of_a, sexp_of_a a is lazily computed, when the info is converted to a sexp. So, if a is mutated in the time between the call to create and the sexp conversion, those mutations will be reflected in the sexp. Use ~strict:() to force sexp_of_a a to be computed immediately.

val create_s : Base.Sexp.t ‑> t
val createf : ('a, unit, string, t) Pervasives.format4 ‑> 'a

Construct a t containing only a string from a format. This eagerly constructs the string.

val tag : t ‑> tag:string ‑> t

Add a string to the front.

val tag_arg : t ‑> string ‑> 'a ‑> ('a ‑> Base.Sexp.t) ‑> t

Add a string and some other data in the form of an s-expression at the front.

val of_list : ?⁠trunc_after:int ‑> t list ‑> t

Combine multiple infos into one

val of_exn : ?⁠backtrace:[ `Get | `This of string ] ‑> exn ‑> t

of_exn and to_exn are primarily used with Error, but their definitions have to be here because they refer to the underlying representation.

val to_exn : t ‑> exn
val pp : Caml.Format.formatter ‑> t ‑> unit
module Internal_repr : sig ... end with type info := t