A lazy string, implemented with Info
, but intended specifically for error
messages.
include Base__.Info_intf.S with type t = private Info.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_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 parentheses and
backslashes.
val of_string : string ‑> 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 ‑> 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 createf : ('a, unit, string, t) Pervasives.format4 ‑> 'a
Constructs a t
containing only a string from a format. This eagerly constructs
the string.
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 : Formatter.t ‑> t ‑> unit
module Internal_repr : sig ... end with type info := t
val raise : t ‑> _
Note that the exception raised by this function maintains a reference to the t
passed in.
val raise_s : Sexp.t ‑> _