sig
  exception Error of Common.ReadError.t
  val raise_variant_wrong_type : string -> 'a
  type 'a reader = Unsafe_common.sptr_ptr -> Unsafe_common.eptr -> 'a
  type ('a, 'b) reader1 = 'Unsafe_read_c.reader -> 'Unsafe_read_c.reader
  type ('a, 'b, 'c) reader2 =
      'Unsafe_read_c.reader -> ('b, 'c) Unsafe_read_c.reader1
  type ('a, 'b, 'c, 'd) reader3 =
      'Unsafe_read_c.reader -> ('b, 'c, 'd) Unsafe_read_c.reader2
  val bin_read_unit : unit Unsafe_read_c.reader
  val bin_read_bool : bool Unsafe_read_c.reader
  val bin_read_string : string Unsafe_read_c.reader
  val bin_read_char : char Unsafe_read_c.reader
  val bin_read_int : int Unsafe_read_c.reader
  val bin_read_float : float Unsafe_read_c.reader
  val bin_read_int32 : int32 Unsafe_read_c.reader
  val bin_read_int64 : int64 Unsafe_read_c.reader
  val bin_read_nativeint : nativeint Unsafe_read_c.reader
  val bin_read_nat0 : Nat0.t Unsafe_read_c.reader
  val bin_read_ref : ('a, 'Pervasives.ref) Unsafe_read_c.reader1
  val bin_read_lazy : ('a, 'a lazy_t) Unsafe_read_c.reader1
  val bin_read_option : ('a, 'a option) Unsafe_read_c.reader1
  val bin_read_pair : ('a, 'b, 'a * 'b) Unsafe_read_c.reader2
  val bin_read_triple : ('a, 'b, 'c, 'a * 'b * 'c) Unsafe_read_c.reader3
  val bin_read_list : ('a, 'a list) Unsafe_read_c.reader1
  val bin_read_array : ('a, 'a array) Unsafe_read_c.reader1
  val bin_read_hashtbl : ('a, 'b, ('a, 'b) Hashtbl.t) Unsafe_read_c.reader2
  val bin_read_float32_vec : Common.vec32 Unsafe_read_c.reader
  val bin_read_float64_vec : Common.vec64 Unsafe_read_c.reader
  val bin_read_vec : Common.vec Unsafe_read_c.reader
  val bin_read_float32_mat : Common.mat32 Unsafe_read_c.reader
  val bin_read_float64_mat : Common.mat64 Unsafe_read_c.reader
  val bin_read_mat : Common.mat Unsafe_read_c.reader
  val bin_read_bigstring : Common.buf Unsafe_read_c.reader
  val bin_read_float_array : float array Unsafe_read_c.reader
  val bin_read_variant_int : int Unsafe_read_c.reader
  val bin_read_variant_tag : [>  ] Unsafe_read_c.reader
  val bin_read_raw_string :
    (string -> pos:int -> len:int -> unit) Unsafe_read_c.reader
  val bin_read_int_8bit : int Unsafe_read_c.reader
  val bin_read_int_16bit : int Unsafe_read_c.reader
  val bin_read_int_32bit : int Unsafe_read_c.reader
  val bin_read_int_64bit : int Unsafe_read_c.reader
  val bin_read_int64_bits : int64 Unsafe_read_c.reader
  val bin_read_network16_int : int Unsafe_read_c.reader
  val bin_read_network32_int : int Unsafe_read_c.reader
  val bin_read_network32_int32 : int32 Unsafe_read_c.reader
  val bin_read_network64_int : int Unsafe_read_c.reader
  val bin_read_network64_int64 : int64 Unsafe_read_c.reader
end