Module Sexp

module Sexp: sig .. end
Extensions to Sexplib.Sexp.


Extensions to Sexplib.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

Printing


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

Various


val print_diff : ?oc:Pervasives.out_channel -> Core.Sexp.t -> Core.Sexp.t -> 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.

val of_sexp_allow_extra_fields : (Core.Sexp.t -> 'a) -> Core.Sexp.t -> 'a
of_sexp_allow_extra_fields of_sexp sexp uses of_sexp to convert sexp to a value, but will not fail if there any extra fields in a record.

Transforming sexp parsers


val filter_record : (Core.Sexp.t -> 'a) -> string list -> Core.Sexp.t -> 'a
module Records_table: sig .. end
module Make_sexp_maybe2 (Random_state : sig
val state : Core.Std.Random.State.t
end) : sig .. end
module Make_explicit_sexp_option (T : sig
type t 
val sexp_of_t : t -> Sexplib.Sexp.t
val t_of_sexp : Sexplib.Sexp.t -> t
val explicit_sexp_option_fields : string list
end) : sig .. end
val load_sexp_conv_exn_sample : ?strict:bool ->
?buf:string ->
?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