module Info:sig..end
Info is a library for lazily constructing human-readable information as a string or
sexp, with a primary use being error messages. Using Info is often preferable to
sprintf or manually constructing strings because you don't have to eagerly construct
the string --- you only need to pay when you actually want to display the info. which
for many applications is rare. Using Info is also better than creating custom
exceptions because you have more control over the format.
Info is intended to be constructed in the following style; for simple info, you write:
Info.of_string "Unable to find file"
For info where you want to attach some content, you would write:
Info.create "Unable to find file" filename <:sexp_of< string >>
Or even,
Info.create "price too big" (price, [`Max max_price])
(<:sexp_of< float * [`Max of float] >>)
Note that an Info.t can be created from any arbritrary sexp with Info.t_of_sexp.
type t
val to_string_hum : t -> stringval of_string : string -> tval of_lazy : string Lazy.t -> tval of_thunk : (unit -> string) -> tval create : ?here:Source_code_position0.t ->
string -> 'a -> ('a -> Sexplib.Sexp.t) -> tcreate msg z sexp_of_z, be careful to use only immutable values for z, or be
aware that z will be lazily converted to a sexp at a later point in time, which will
pick up the then-current state of z.val tag : t -> string -> tval tag_arg : t -> string -> 'a -> ('a -> Sexplib.Sexp.t) -> tval of_list : ?trunc_after:int -> t list -> tval of_exn : ?backtrace:[ `Get | `This of string ] -> exn -> tval to_exn : t -> exnval pp : Format.formatter -> t -> unitval t_of_sexp : Sexplib.Sexp.t -> tval sexp_of_t : t -> Sexplib.Sexp.tval bin_t : t Bin_prot.Type_class.tval bin_read_t : t Bin_prot.Read.readerval __bin_read_t__ : (int -> t) Bin_prot.Read.readerval bin_reader_t : t Bin_prot.Type_class.readerval bin_size_t : t Bin_prot.Size.sizerval bin_write_t : t Bin_prot.Write.writerval bin_writer_t : t Bin_prot.Type_class.writercreate msg z sexp_of_z, be careful to use only immutable values for z, or be
aware that z will be lazily converted to a sexp at a later point in time, which will
pick up the then-current state of z.