sig
  type sexp_bool = bool
  type 'a sexp_option = 'a option
  type 'a sexp_list = 'a list
  type 'a sexp_array = 'a array
  type 'a sexp_opaque = 'a
  type bigstring = Sexp.bigstring
  type float32_vec =
      (float, Bigarray.float32_elt, Bigarray.fortran_layout)
      Bigarray.Array1.t
  type float64_vec =
      (float, Bigarray.float64_elt, Bigarray.fortran_layout)
      Bigarray.Array1.t
  type vec = Conv.float64_vec
  type float32_mat =
      (float, Bigarray.float32_elt, Bigarray.fortran_layout)
      Bigarray.Array2.t
  type float64_mat =
      (float, Bigarray.float64_elt, Bigarray.fortran_layout)
      Bigarray.Array2.t
  type mat = Conv.float64_mat
  val default_string_of_float : (float -> string) Pervasives.ref
  val write_old_option_format : bool Pervasives.ref
  val read_old_option_format : bool Pervasives.ref
  val list_map : ('-> 'b) -> 'a list -> 'b list
  val sexp_of_unit : unit -> Sexp.t
  val sexp_of_bool : bool -> Sexp.t
  val sexp_of_string : string -> Sexp.t
  val sexp_of_char : char -> Sexp.t
  val sexp_of_int : int -> Sexp.t
  val sexp_of_float : float -> Sexp.t
  val sexp_of_int32 : int32 -> Sexp.t
  val sexp_of_int64 : int64 -> Sexp.t
  val sexp_of_nativeint : nativeint -> Sexp.t
  val sexp_of_big_int : Big_int.big_int -> Sexp.t
  val sexp_of_nat : Nat.nat -> Sexp.t
  val sexp_of_num : Num.num -> Sexp.t
  val sexp_of_ratio : Ratio.ratio -> Sexp.t
  val sexp_of_ref : ('-> Sexp.t) -> 'Pervasives.ref -> Sexp.t
  val sexp_of_lazy_t : ('-> Sexp.t) -> 'a lazy_t -> Sexp.t
  val sexp_of_option : ('-> Sexp.t) -> 'a option -> Sexp.t
  val sexp_of_pair : ('-> Sexp.t) -> ('-> Sexp.t) -> 'a * '-> Sexp.t
  val sexp_of_triple :
    ('-> Sexp.t) ->
    ('-> Sexp.t) -> ('-> Sexp.t) -> 'a * 'b * '-> Sexp.t
  val sexp_of_list : ('-> Sexp.t) -> 'a list -> Sexp.t
  val sexp_of_array : ('-> Sexp.t) -> 'a array -> Sexp.t
  val sexp_of_hashtbl :
    ('-> Sexp.t) -> ('-> Sexp.t) -> ('a, 'b) Hashtbl.t -> Sexp.t
  val sexp_of_bigstring : Conv.bigstring -> Sexp.t
  val sexp_of_float32_vec : Conv.float32_vec -> Sexp.t
  val sexp_of_float64_vec : Conv.float64_vec -> Sexp.t
  val sexp_of_vec : Conv.vec -> Sexp.t
  val sexp_of_float32_mat : Conv.float32_mat -> Sexp.t
  val sexp_of_float64_mat : Conv.float64_mat -> Sexp.t
  val sexp_of_mat : Conv.mat -> Sexp.t
  val sexp_of_opaque : '-> Sexp.t
  val sexp_of_fun : ('-> 'b) -> Sexp.t
  val string_of__of__sexp_of : ('-> Sexp.t) -> '-> string
  exception Of_sexp_error of exn * Sexp.t
  val record_check_extra_fields : bool Pervasives.ref
  val of_sexp_error : string -> Sexp.t -> 'a
  val of_sexp_error_exn : exn -> Sexp.t -> 'a
  val unit_of_sexp : Sexp.t -> unit
  val bool_of_sexp : Sexp.t -> bool
  val string_of_sexp : Sexp.t -> string
  val char_of_sexp : Sexp.t -> char
  val int_of_sexp : Sexp.t -> int
  val float_of_sexp : Sexp.t -> float
  val int32_of_sexp : Sexp.t -> int32
  val int64_of_sexp : Sexp.t -> int64
  val nativeint_of_sexp : Sexp.t -> nativeint
  val big_int_of_sexp : Sexp.t -> Big_int.big_int
  val nat_of_sexp : Sexp.t -> Nat.nat
  val num_of_sexp : Sexp.t -> Num.num
  val ratio_of_sexp : Sexp.t -> Ratio.ratio
  val ref_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'Pervasives.ref
  val lazy_t_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a lazy_t
  val option_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a option
  val pair_of_sexp : (Sexp.t -> 'a) -> (Sexp.t -> 'b) -> Sexp.t -> 'a * 'b
  val triple_of_sexp :
    (Sexp.t -> 'a) ->
    (Sexp.t -> 'b) -> (Sexp.t -> 'c) -> Sexp.t -> 'a * 'b * 'c
  val list_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a list
  val array_of_sexp : (Sexp.t -> 'a) -> Sexp.t -> 'a array
  val hashtbl_of_sexp :
    (Sexp.t -> 'a) -> (Sexp.t -> 'b) -> Sexp.t -> ('a, 'b) Hashtbl.t
  val bigstring_of_sexp : Sexp.t -> Conv.bigstring
  val float32_vec_of_sexp : Sexp.t -> Conv.float32_vec
  val float64_vec_of_sexp : Sexp.t -> Conv.float64_vec
  val vec_of_sexp : Sexp.t -> Conv.vec
  val float32_mat_of_sexp : Sexp.t -> Conv.float32_mat
  val float64_mat_of_sexp : Sexp.t -> Conv.float64_mat
  val mat_of_sexp : Sexp.t -> Conv.mat
  val opaque_of_sexp : Sexp.t -> 'a
  val fun_of_sexp : Sexp.t -> 'a
  val of_string__of__of_sexp : (Sexp.t -> 'a) -> string -> 'a
  val sexp_of_exn : exn -> Sexp.t
  val sexp_of_exn_opt : exn -> Sexp.t option
  module Exn_converter :
    sig
      type t
      val set_max_exn_tags : int -> unit
      val get_max_exn_tags : unit -> int
      val add_auto : ?finalise:bool -> exn -> (exn -> Sexp.t) -> unit
      val add_slow : (exn -> Sexp.t option) -> Conv.Exn_converter.t
      val del_slow : Conv.Exn_converter.t -> unit
    end
end