sig
  type 'a sizer = '-> int
  type ('a, 'b) sizer1 = 'Size.sizer -> 'Size.sizer
  type ('a, 'b, 'c) sizer2 = 'Size.sizer -> ('b, 'c) Size.sizer1
  type ('a, 'b, 'c, 'd) sizer3 = 'Size.sizer -> ('b, 'c, 'd) Size.sizer2
  val bin_size_unit : unit Size.sizer
  val bin_size_bool : bool Size.sizer
  val bin_size_string : string Size.sizer
  val bin_size_char : char Size.sizer
  val bin_size_int : int Size.sizer
  val bin_size_float : float Size.sizer
  val bin_size_int32 : int32 Size.sizer
  val bin_size_int64 : int64 Size.sizer
  val bin_size_nativeint : nativeint Size.sizer
  val bin_size_nat0 : Nat0.t Size.sizer
  val bin_size_ref : ('a, 'Pervasives.ref) Size.sizer1
  val bin_size_lazy : ('a, 'a lazy_t) Size.sizer1
  val bin_size_option : ('a, 'a option) Size.sizer1
  val bin_size_pair : ('a, 'b, 'a * 'b) Size.sizer2
  val bin_size_triple : ('a, 'b, 'c, 'a * 'b * 'c) Size.sizer3
  val bin_size_list : ('a, 'a list) Size.sizer1
  val bin_size_array : ('a, 'a array) Size.sizer1
  val bin_size_hashtbl : ('a, 'b, ('a, 'b) Hashtbl.t) Size.sizer2
  val bin_size_float32_vec : Common.vec32 Size.sizer
  val bin_size_float64_vec : Common.vec64 Size.sizer
  val bin_size_vec : Common.vec Size.sizer
  val bin_size_float32_mat : Common.mat32 Size.sizer
  val bin_size_float64_mat : Common.mat64 Size.sizer
  val bin_size_mat : Common.mat Size.sizer
  val bin_size_bigstring : Common.buf Size.sizer
  val bin_size_float_array : float array Size.sizer
  val bin_size_variant_tag : [>  ] Size.sizer
  val bin_size_int_8bit : int Size.sizer
  val bin_size_int_16bit : int Size.sizer
  val bin_size_int_32bit : int Size.sizer
  val bin_size_int_64bit : int Size.sizer
  val bin_size_int64_bits : int64 Size.sizer
  val bin_size_network16_int : int Size.sizer
  val bin_size_network32_int : int Size.sizer
  val bin_size_network32_int32 : int32 Size.sizer
  val bin_size_network64_int : int Size.sizer
  val bin_size_network64_int64 : int64 Size.sizer
  val bin_size_array_no_length : ('a, 'a array) Size.sizer1
end