Module Core_extended.Extended_sexp

val is_atom : Core.Sexp.t ‑> bool
val is_list : Core.Sexp.t ‑> bool

Constructors

val atom : string ‑> Core.Sexp.t
val list : Core.Sexp.t list ‑> Core.Sexp.t
val to_string_hum' : Core.Sexp.t ‑> string

The ocaml pretty printer (used by sexplib) is a speed daemon but is, sadly enough, produces wrong output (e.g it overflows in places where this could have avoided). This uses a printer from wadler's a prettier printer to output strings suited to human consumption.

val format : Core.Sexp.t ‑> Pp.t
val pp_hum' : Format.formatter ‑> Core.Sexp.t ‑> unit

A more readable but less compact pretty printer than the one bundled by sexplib. This is going through a test period at which point it might make it in sexplib. It uses ocaml's pretty-printing library so it is both fast and broken.

val comment : string ‑> string

Takes a string and returns the same string but commented according to sexp's syntax

module Diff : sig ... end

Various

val print_diff : ?⁠oc:Core.Out_channel.t ‑> original:Core.Sexp.t ‑> updated:Core.Sexp.t ‑> unit ‑> unit
val summarize : Core.Sexp.t ‑> sub_sexp:Core.Sexp.t ‑> size:[ `depth of int | `string of int ] ‑> Core.Sexp.t

Returns a smaller sexp by replacing sections with "...". Will try to show parts of the sexp "near" sub_sexp.

Limiting size to length a string length is less efficient than a certain depth. The meaning of a given depth is arbitrary except that more depth gives you a bigger sexp. Try 100 or so.

Transforming sexp parsers

module Records_table : sig ... end
module Make_explicit_sexp_option : functor (T : sig ... end) -> sig ... end
val load_sexp_conv_exn_sample : ?⁠strict:bool ‑> ?⁠buf:Core.Bytes.t ‑> ?⁠on_non_existence:[ `Exit | `Raise ] ‑> ?⁠name:string ‑> string ‑> sexp_of_t:('a ‑> Core.Sexp.t) ‑> t_of_sexp:(Core.Sexp.t ‑> 'a) ‑> sample:'a ‑> 'a
module Comprehension : sig ... end