Module Base__.Error
include Base__.Info_intf.S with type t = private Base.Info.t
type t
= private Base.Info.t
Serialization and comparison force the lazy message.
val compare : t -> t -> int
val equal : t -> t -> bool
val hash_fold_t : Base.Hash.state -> t -> Base.Hash.state
val hash : t -> Base.Hash.hash_value
include Base.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.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 thatto_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
outputst
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
val of_lazy : string Base.Lazy.t -> t
val of_thunk : (unit -> string) -> t
val of_lazy_t : t Base.Lazy.t -> 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 ifa
is mutated in the time between the call tocreate
and the sexp conversion, those mutations will be reflected in the sexp. Use~strict:()
to forcesexp_of_a a
to be computed immediately.
val create_s : Base.Sexp.t -> t
val createf : ('a, unit, string, t) Stdlib.format4 -> 'a
Constructs a
t
containing only a string from a format. This eagerly constructs the string.
val tag_s : t -> tag:Base.Sexp.t -> t
Adds a sexp to the front.
val tag_arg : t -> string -> 'a -> ('a -> Base.Sexp.t) -> t
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
of_exn
andto_exn
are primarily used withError
, 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 forPrintexc.print_backtrace
apply.~backtrace:(`This s)
attaches the backtraces
. The default is no backtrace.
val to_exn : t -> exn
val pp : Base.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 : Base.Sexp.t -> _
val to_info : t -> Base.Info.t
val of_info : Base.Info.t -> t