include Base__.Import0include module type of sig ... end with type a ref := a Pervasives.ref with type (a, b, c) format := (a, b, c) Pervasives.format with type (a, b, c, d) format4 := (a, b, c, d) Pervasives.format4 with type (a, b, c, d, e, f) format6 := (a, b, c, d, e, f) Pervasives.format6 with module Pervasives := Pervasives with module Array := Caml.Array with module Buffer := Caml.Buffer with module Bytes := Caml.Bytes with module Char := Caml.Char with module Hashtbl := Caml.Hashtbl with module Int32 := Caml.Int32 with module Int64 := Caml.Int64 with module Lazy := Caml.Lazy with module List := Caml.List with module Map := Caml.Map with module Nativeint := Caml.Nativeint with module Printf := Caml.Printf with module Random := Caml.Random with module Set := Caml.Set with module String := Caml.String with module Sys := Caml.Sys with module Uchar := Caml.Ucharexternal classify_float : float ‑> fpclass = val stdin : in_channelval stdout : out_channelval stderr : out_channelval open_out : string ‑> out_channelval open_out_bin : string ‑> out_channelval open_out_gen : open_flag list ‑> int ‑> string ‑> out_channelval flush : out_channel ‑> unitval output_char : out_channel ‑> char ‑> unitval output_string : out_channel ‑> string ‑> unitval output_bytes : out_channel ‑> bytes ‑> unitval output : out_channel ‑> bytes ‑> int ‑> int ‑> unitval output_substring : out_channel ‑> string ‑> int ‑> int ‑> unitval output_byte : out_channel ‑> int ‑> unitval output_binary_int : out_channel ‑> int ‑> unitval output_value : out_channel ‑> 'a ‑> unitval seek_out : out_channel ‑> int ‑> unitval pos_out : out_channel ‑> intval out_channel_length : out_channel ‑> intval close_out : out_channel ‑> unitval close_out_noerr : out_channel ‑> unitval set_binary_mode_out : out_channel ‑> bool ‑> unitval open_in : string ‑> in_channelval open_in_bin : string ‑> in_channelval open_in_gen : open_flag list ‑> int ‑> string ‑> in_channelval input_char : in_channel ‑> charval input_line : in_channel ‑> stringval input : in_channel ‑> bytes ‑> int ‑> int ‑> intval really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unitval really_input_string : in_channel ‑> int ‑> stringval input_byte : in_channel ‑> intval input_binary_int : in_channel ‑> intval input_value : in_channel ‑> 'aval seek_in : in_channel ‑> int ‑> unitval pos_in : in_channel ‑> intval in_channel_length : in_channel ‑> intval close_in : in_channel ‑> unitval close_in_noerr : in_channel ‑> unitval set_binary_mode_in : in_channel ‑> bool ‑> unitexternal ref : 'a ‑> 'a ref = external (!) : 'a ref ‑> 'a = external (:=) : 'a ref ‑> 'a ‑> unit = external incr : int ref ‑> unit = external decr : int ref ‑> unit = val string_of_format : ('a, 'b, 'c, 'd, 'e, 'f) format6 ‑> stringval unsafe_really_input : in_channel ‑> bytes ‑> int ‑> int ‑> unitmodule Caml = Base__.Import0.Camlmodule Polymorphic_compare = Base__.Import0.Polymorphic_comparemodule Poly = Polymorphic_comparemodule Int_replace_polymorphic_compare = Base__.Import0.Int_replace_polymorphic_compareinclude Int_replace_polymorphic_compareexternal (:=) : 'a ref ‑> 'a ‑> unit = "%setfield0" external (!) : 'a ref ‑> 'a = "%field0" external ref : 'a ‑> 'a ref = "%makemutable" val decr : int Caml.ref ‑> unitval incr : int Caml.ref ‑> unitinclude Sexplib0.Sexp_convUtility Module for S-expression Conversions
val default_string_of_float : (float ‑> string) Pervasives.refdefault_string_of_float reference to the default function used
to convert floats to strings.
Initially set to fun n -> sprintf "%.20G" n.
val write_old_option_format : bool Pervasives.refwrite_old_option_format reference for the default option format
used to write option values. If set to true, the old-style option
format will be used, the new-style one otherwise.
Initially set to true.
val read_old_option_format : bool Pervasives.refread_old_option_format reference for the default option format
used to read option values. Of_sexp_error will be raised
with old-style option values if this reference is set to false.
Reading new-style option values is always supported. Using a global
reference instead of changing the converter calling conventions is
the only way to avoid breaking old code with the standard macros.
Initially set to true.
val list_map : ('a ‑> 'b) ‑> 'a list ‑> 'b listWe re-export a tail recursive map function, because some modules
override the standard library functions (e.g. StdLabels) which
wrecks havoc with the camlp4 extension.
val sexp_of_unit : unit ‑> Sexplib0.Sexp.tsexp_of_unit () converts a value of type unit to an S-expression.
val sexp_of_bool : bool ‑> Sexplib0.Sexp.tsexp_of_bool b converts the value x of type bool to an
S-expression.
val sexp_of_string : string ‑> Sexplib0.Sexp.tsexp_of_bool str converts the value str of type string to an
S-expression.
val sexp_of_bytes : bytes ‑> Sexplib0.Sexp.tsexp_of_bool str converts the value str of type bytes to an
S-expression.
val sexp_of_char : char ‑> Sexplib0.Sexp.tsexp_of_char c converts the value c of type char to an
S-expression.
val sexp_of_int : int ‑> Sexplib0.Sexp.tsexp_of_int n converts the value n of type int to an
S-expression.
val sexp_of_float : float ‑> Sexplib0.Sexp.tsexp_of_float n converts the value n of type float to an
S-expression.
val sexp_of_int32 : int32 ‑> Sexplib0.Sexp.tsexp_of_int32 n converts the value n of type int32 to an
S-expression.
val sexp_of_int64 : int64 ‑> Sexplib0.Sexp.tsexp_of_int64 n converts the value n of type int64 to an
S-expression.
val sexp_of_nativeint : nativeint ‑> Sexplib0.Sexp.tsexp_of_nativeint n converts the value n of type nativeint to an
S-expression.
val sexp_of_ref : ('a ‑> Sexplib0.Sexp.t) ‑> 'a Pervasives.ref ‑> Sexplib0.Sexp.tsexp_of_ref conv r converts the value r of type 'a ref to
an S-expression. Uses conv to convert values of type 'a to an
S-expression.
val sexp_of_lazy_t : ('a ‑> Sexplib0.Sexp.t) ‑> 'a lazy_t ‑> Sexplib0.Sexp.tsexp_of_lazy_t conv l converts the value l of type 'a lazy_t to
an S-expression. Uses conv to convert values of type 'a to an
S-expression.
val sexp_of_option : ('a ‑> Sexplib0.Sexp.t) ‑> 'a option ‑> Sexplib0.Sexp.tsexp_of_option conv opt converts the value opt of type 'a
option to an S-expression. Uses conv to convert values of type
'a to an S-expression.
val sexp_of_pair : ('a ‑> Sexplib0.Sexp.t) ‑> ('b ‑> Sexplib0.Sexp.t) ‑> ('a * 'b) ‑> Sexplib0.Sexp.tsexp_of_pair conv1 conv2 pair converts a pair to an S-expression.
It uses its first argument to convert the first element of the pair,
and its second argument to convert the second element of the pair.
val sexp_of_triple : ('a ‑> Sexplib0.Sexp.t) ‑> ('b ‑> Sexplib0.Sexp.t) ‑> ('c ‑> Sexplib0.Sexp.t) ‑> ('a * 'b * 'c) ‑> Sexplib0.Sexp.tsexp_of_triple conv1 conv2 conv3 triple converts a triple to
an S-expression using conv1, conv2, and conv3 to convert its
elements.
val sexp_of_list : ('a ‑> Sexplib0.Sexp.t) ‑> 'a list ‑> Sexplib0.Sexp.tsexp_of_list conv lst converts the value lst of type 'a
list to an S-expression. Uses conv to convert values of type
'a to an S-expression.
val sexp_of_array : ('a ‑> Sexplib0.Sexp.t) ‑> 'a array ‑> Sexplib0.Sexp.tsexp_of_array conv ar converts the value ar of type 'a
array to an S-expression. Uses conv to convert values of type
'a to an S-expression.
val sexp_of_hashtbl : ('a ‑> Sexplib0.Sexp.t) ‑> ('b ‑> Sexplib0.Sexp.t) ‑> ('a, 'b) Hashtbl.t ‑> Sexplib0.Sexp.tsexp_of_hashtbl conv_key conv_value htbl converts the value htbl
of type ('a, 'b) Hashtbl.t to an S-expression. Uses conv_key
to convert the hashtable keys of type 'a, and conv_value to
convert hashtable values of type 'b to S-expressions.
val sexp_of_opaque : 'a ‑> Sexplib0.Sexp.tsexp_of_opaque x converts the value x of opaque type to an
S-expression. This means the user need not provide converters,
but the result cannot be interpreted.
val sexp_of_fun : ('a ‑> 'b) ‑> Sexplib0.Sexp.tsexp_of_fun f converts the value f of function type to a
dummy S-expression. Functions cannot be serialized as S-expressions,
but at least a placeholder can be generated for pretty-printing.
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.
val record_check_extra_fields : bool Pervasives.refrecord_check_extra_fields checks for extra (= unknown) fields
in record S-expressions.
val of_sexp_error : string ‑> Sexplib0.Sexp.t ‑> 'aof_sexp_error reason sexp
val of_sexp_error_exn : exn ‑> Sexplib0.Sexp.t ‑> 'aof_sexp_error exc sexp
val unit_of_sexp : Sexplib0.Sexp.t ‑> unitunit_of_sexp sexp converts S-expression sexp to a value of type
unit.
val bool_of_sexp : Sexplib0.Sexp.t ‑> boolbool_of_sexp sexp converts S-expression sexp to a value of type
bool.
val string_of_sexp : Sexplib0.Sexp.t ‑> stringstring_of_sexp sexp converts S-expression sexp to a value of type
string.
val bytes_of_sexp : Sexplib0.Sexp.t ‑> bytesbytes_of_sexp sexp converts S-expression sexp to a value of type
bytes.
val char_of_sexp : Sexplib0.Sexp.t ‑> charchar_of_sexp sexp converts S-expression sexp to a value of type
char.
val int_of_sexp : Sexplib0.Sexp.t ‑> intint_of_sexp sexp converts S-expression sexp to a value of type
int.
val float_of_sexp : Sexplib0.Sexp.t ‑> floatfloat_of_sexp sexp converts S-expression sexp to a value of type
float.
val int32_of_sexp : Sexplib0.Sexp.t ‑> int32int32_of_sexp sexp converts S-expression sexp to a value of type
int32.
val int64_of_sexp : Sexplib0.Sexp.t ‑> int64int64_of_sexp sexp converts S-expression sexp to a value of type
int64.
val nativeint_of_sexp : Sexplib0.Sexp.t ‑> nativeintnativeint_of_sexp sexp converts S-expression sexp to a value
of type nativeint.
val ref_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> Sexplib0.Sexp.t ‑> 'a Pervasives.refref_of_sexp conv sexp converts S-expression sexp to a value
of type 'a ref using conversion function conv, which converts
an S-expression to a value of type 'a.
val lazy_t_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> Sexplib0.Sexp.t ‑> 'a lazy_tlazy_t_of_sexp conv sexp converts S-expression sexp to a value
of type 'a lazy_t using conversion function conv, which converts
an S-expression to a value of type 'a.
val option_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> Sexplib0.Sexp.t ‑> 'a optionoption_of_sexp conv sexp converts S-expression sexp to a value
of type 'a option using conversion function conv, which converts
an S-expression to a value of type 'a.
val pair_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> (Sexplib0.Sexp.t ‑> 'b) ‑> Sexplib0.Sexp.t ‑> 'a * 'bpair_of_sexp conv1 conv2 sexp converts S-expression sexp to a pair
of type 'a * 'b using conversion functions conv1 and conv2,
which convert S-expressions to values of type 'a and 'b
respectively.
val triple_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> (Sexplib0.Sexp.t ‑> 'b) ‑> (Sexplib0.Sexp.t ‑> 'c) ‑> Sexplib0.Sexp.t ‑> 'a * 'b * 'ctriple_of_sexp conv1 conv2 conv3 sexp converts S-expression sexp
to a triple of type 'a * 'b * 'c using conversion functions conv1,
conv2, and conv3, which convert S-expressions to values of type
'a, 'b, and 'c respectively.
val list_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> Sexplib0.Sexp.t ‑> 'a listlist_of_sexp conv sexp converts S-expression sexp to a value
of type 'a list using conversion function conv, which converts
an S-expression to a value of type 'a.
val array_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> Sexplib0.Sexp.t ‑> 'a arrayarray_of_sexp conv sexp converts S-expression sexp to a value
of type 'a array using conversion function conv, which converts
an S-expression to a value of type 'a.
val hashtbl_of_sexp : (Sexplib0.Sexp.t ‑> 'a) ‑> (Sexplib0.Sexp.t ‑> 'b) ‑> Sexplib0.Sexp.t ‑> ('a, 'b) Hashtbl.thashtbl_of_sexp conv_key conv_value sexp converts S-expression
sexp to a value of type ('a, 'b) Hashtbl.t using conversion
function conv_key, which converts an S-expression to hashtable
key of type 'a, and function conv_value, which converts an
S-expression to hashtable value of type 'b.
val opaque_of_sexp : Sexplib0.Sexp.t ‑> 'aopaque_of_sexp sexp
val fun_of_sexp : Sexplib0.Sexp.t ‑> 'afun_of_sexp sexp
Exception converters
val sexp_of_exn : exn ‑> Sexplib0.Sexp.tsexp_of_exn exc converts exception exc to an S-expression.
If no suitable converter is found, the standard converter in
Printexc will be used to generate an atomic S-expression.
val sexp_of_exn_opt : exn ‑> Sexplib0.Sexp.t optionsexp_of_exn_opt exc converts exception exc to Some sexp.
If no suitable converter is found, None is returned instead.
module Exn_converter = Sexplib0.Sexp_conv.Exn_converterinclude Base.Hash.Builtininclude Base.Hash_intf.Builtin_hash_fold_intfval hash_fold_nativeint : nativeint folderval hash_fold_int64 : int64 folderval hash_fold_int32 : int32 folderval hash_fold_char : char folderval hash_fold_int : int folderval hash_fold_bool : bool folderval hash_fold_string : string folderval hash_fold_float : float folderval hash_fold_unit : unit folderval hash_fold_ref_frozen : 'a folder ‑> 'a Base__.Import0.ref folderHash support for array and ref is provided, but is potentially DANGEROUS, since
it incorporates the current contents of the array/ref into the hash value. Because
of this we add a _frozen suffix to the function name.
Hash support for string is also potentially DANGEROUS, but strings are mutated
less often, so we don't append _frozen to it.
Also note that we don't support bytes.
include Base.Hash_intf.Builtin_hash_intfval hash_nativeint : nativeint ‑> hash_valueval hash_int64 : int64 ‑> hash_valueval hash_int32 : int32 ‑> hash_valueval hash_char : char ‑> hash_valueval hash_int : int ‑> hash_valueval hash_bool : bool ‑> hash_valueval hash_string : string ‑> hash_valueval hash_float : float ‑> hash_valueval hash_unit : unit ‑> hash_value