sig
  type 'a writer =
      Unsafe_common.sptr -> Unsafe_common.eptr -> '-> Unsafe_common.sptr
  type ('a, 'b) writer1 =
      'Unsafe_write_c.writer -> 'Unsafe_write_c.writer
  type ('a, 'b, 'c) writer2 =
      'Unsafe_write_c.writer -> ('b, 'c) Unsafe_write_c.writer1
  type ('a, 'b, 'c, 'd) writer3 =
      'Unsafe_write_c.writer -> ('b, 'c, 'd) Unsafe_write_c.writer2
  val bin_write_unit : unit Unsafe_write_c.writer
  val bin_write_bool : bool Unsafe_write_c.writer
  val bin_write_string : string Unsafe_write_c.writer
  val bin_write_char : char Unsafe_write_c.writer
  val bin_write_int : int Unsafe_write_c.writer
  val bin_write_float : float Unsafe_write_c.writer
  val bin_write_int32 : int32 Unsafe_write_c.writer
  val bin_write_int64 : int64 Unsafe_write_c.writer
  val bin_write_nativeint : nativeint Unsafe_write_c.writer
  val bin_write_nat0 : Nat0.t Unsafe_write_c.writer
  val bin_write_ref : ('a, 'Pervasives.ref) Unsafe_write_c.writer1
  val bin_write_lazy : ('a, 'a lazy_t) Unsafe_write_c.writer1
  val bin_write_option : ('a, 'a option) Unsafe_write_c.writer1
  val bin_write_pair : ('a, 'b, 'a * 'b) Unsafe_write_c.writer2
  val bin_write_triple : ('a, 'b, 'c, 'a * 'b * 'c) Unsafe_write_c.writer3
  val bin_write_list : ('a, 'a list) Unsafe_write_c.writer1
  val bin_write_array : ('a, 'a array) Unsafe_write_c.writer1
  val bin_write_hashtbl : ('a, 'b, ('a, 'b) Hashtbl.t) Unsafe_write_c.writer2
  val bin_write_float32_vec : Common.vec32 Unsafe_write_c.writer
  val bin_write_float64_vec : Common.vec64 Unsafe_write_c.writer
  val bin_write_vec : Common.vec Unsafe_write_c.writer
  val bin_write_float32_mat : Common.mat32 Unsafe_write_c.writer
  val bin_write_float64_mat : Common.mat64 Unsafe_write_c.writer
  val bin_write_mat : Common.mat Unsafe_write_c.writer
  val bin_write_bigstring : Common.buf Unsafe_write_c.writer
  val bin_write_float_array : float array Unsafe_write_c.writer
  val bin_write_variant_tag : [>  ] Unsafe_write_c.writer
  val bin_write_raw_string :
    Unsafe_common.sptr ->
    Unsafe_common.eptr -> string -> pos:int -> len:int -> Unsafe_common.sptr
  val bin_write_int_8bit : int Unsafe_write_c.writer
  val bin_write_int_16bit : int Unsafe_write_c.writer
  val bin_write_int_32bit : int Unsafe_write_c.writer
  val bin_write_int_64bit : int Unsafe_write_c.writer
  val bin_write_int64_bits : int64 Unsafe_write_c.writer
  val bin_write_network16_int : int Unsafe_write_c.writer
  val bin_write_network32_int : int Unsafe_write_c.writer
  val bin_write_network32_int32 : int32 Unsafe_write_c.writer
  val bin_write_network64_int : int Unsafe_write_c.writer
  val bin_write_network64_int64 : int64 Unsafe_write_c.writer
  val bin_write_array_no_length : ('a, 'a array) Unsafe_write_c.writer1
end