type t = Sexplib0.Sexp.t =| Atom of string| List of t listType of S-expressions
val hash_fold_t : Hash.state -> t -> Hash.stateval hash : t -> Hash.hash_value
include module type of Sexplib0.Sexp with type t := Sexplib0.Sexp.t
val t_of_sexp : Sexplib0.Sexp.t -> Sexplib0.Sexp.tval sexp_of_t : Sexplib0.Sexp.t -> Sexplib0.Sexp.tval t_sexp_grammar : Sexplib0__Raw_grammar.tval equal : Sexplib0.Sexp.t -> Sexplib0.Sexp.t -> boolval compare : Sexplib0.Sexp.t -> Sexplib0.Sexp.t -> int
exception Not_found_s of Sexplib0.Sexp.tNot_found_sis used by functions that historically raisedNot_found, to allow them to raise an exception that contains an informative error message (as a sexp), while still having an exception that can be distinguished from other exceptions.
exception Of_sexp_error of exn * Sexplib0.Sexp.tOf_sexp_error (exn, sexp)the exception raised when an S-expression could not be successfully converted to an OCaml-value.
Helpers
val message : string -> (string * Sexplib0.Sexp.t) list -> Sexplib0.Sexp.tHelper to build nice s-expressions for error messages. It imitates the behavior of
[%message ...]from the ppx_sexp_message rewriter.message name key_valuesproduces a s-expression list starting with atomnameand followed by list of size 2 of the form(key value). When the key is the empty string,valueis used directly instead as for[%message].For instance the following code:
Sexp.message "error" [ "x", sexp_of_int 42 ; "" , sexp_of_exn Exit ]produces the s-expression:
(error (x 42) Exit)
Defaults
val default_indent : int Stdlib.refdefault_indentreference to default indentation level for human-readable conversions.Initialisation value: 2.
Pretty printing of S-expressions
val pp_hum : Stdlib.Format.formatter -> Sexplib0.Sexp.t -> unitpp_hum ppf sexpoutputs S-expressionsexpto formatterppfin human readable form.
val pp_hum_indent : int -> Stdlib.Format.formatter -> Sexplib0.Sexp.t -> unitpp_hum_indent n ppf sexpoutputs S-expressionsexpto formatterppfin human readable form and indentation leveln.
val pp_mach : Stdlib.Format.formatter -> Sexplib0.Sexp.t -> unitpp_mach ppf sexpoutputs S-expressionsexpto formatterppfin machine readable (i.e. most compact) form.
val pp : Stdlib.Format.formatter -> Sexplib0.Sexp.t -> unitSame as
pp_mach.
Conversion to strings
val to_string_hum : ?indent:int -> Sexplib0.Sexp.t -> stringto_string_hum ?indent sexpconverts S-expressionsexpto a string in human readable form with indentation levelindent.- parameter indent
default =
!default_indent
val to_string_mach : Sexplib0.Sexp.t -> stringto_string_mach sexpconverts S-expressionsexpto a string in machine readable (i.e. most compact) form.
val to_string : Sexplib0.Sexp.t -> stringSame as
to_string_mach.
Styles
val of_float_style : [ `Underscores | `No_underscores ] Stdlib.refval of_int_style : [ `Underscores | `No_underscores ] Stdlib.ref
module Private : sig ... endval invariant : t -> unitval of_string : unitBase has never had an
of_stringfunction. We expose a deprecatedof_stringhere so that people can find it (e.g. with merlin), and learn what we recommend. Thisof_stringhas typeunitbecause we don't want it to be accidentally used.
include Comparable.S with type t := t
val ascending : t -> t -> intascendingis identical tocompare.descending x y = ascending y x. These are intended to be mnemonic when used likeList.sort ~compare:ascendingandList.sort ~cmp:descending, since they cause the list to be sorted in ascending or descending order, respectively.
val descending : t -> t -> intval between : t -> low:t -> high:t -> boolbetween t ~low ~highmeanslow <= t <= high
val clamp_exn : t -> min:t -> max:t -> tclamp_exn t ~min ~maxreturnst', the closest value totsuch thatbetween t' ~low:min ~high:maxis true.Raises if
not (min <= max).
val clamp : t -> min:t -> max:t -> t Or_error.t
include Comparator.S with type t := t
val comparator : (t, comparator_witness) Comparator.comparator
val validate_lbound : min:t Maybe_bound.t -> t Validate.checkval validate_ubound : max:t Maybe_bound.t -> t Validate.checkval validate_bound : min:t Maybe_bound.t -> max:t Maybe_bound.t -> t Validate.check