A lazy string, implemented with
Info, but intended specifically for error messages.
type t = private Info.t
Serialization and comparison force the lazy message.
val hash_fold_t : Hash.state -> t -> Hash.state
val hash : t -> Hash.hash_value
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
val t_sexp_grammar : t Sexplib0.Sexp_grammar.t
val invariant : t -> unit
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
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 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:Caml.Lexing.position -> ?strict:unit -> string -> 'a -> ('a -> Sexp.t) -> t
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.
t containing only a string from a format. This eagerly constructs the string.
Adds a string and some other data in the form of an s-expression at the front.
val of_exn : ?backtrace:[ `Get | `This of string ] -> exn -> t
to_exn are primarily used with
Error, but their definitions have to be here because they refer to the underlying representation.
~backtrace:`Get attaches the backtrace for the most recent exception. The same caveats as for
~backtrace:(`This s) attaches the backtrace
s. The default is no backtrace.
val to_exn : t -> exn
val pp : Formatter.t -> t -> unit
module Internal_repr : sig ... end
val raise : t -> _
Note that the exception raised by this function maintains a reference to the
t passed in.
val raise_s : Sexp.t -> _