sig
  module type S =
    sig
      type binable
      val bin_size_t : binable Bin_prot.Size.sizer
      val bin_write_t : binable Bin_prot.Map_to_safe.writer
      val bin_write_t_ : binable Bin_prot.Unsafe_write_c.writer
      val bin_read_t : binable Bin_prot.Read_ml.reader
      val bin_read_t_ : binable Bin_prot.Unsafe_read_c.reader
      val bin_read_t__ : (int -> binable) Bin_prot.Unsafe_read_c.reader
      val bin_writer_t : binable Bin_prot.Type_class.writer
      val bin_reader_t : binable Bin_prot.Type_class.reader
      val bin_t : binable Bin_prot.Type_class.t
    end
  module type S1 =
    sig
      type 'a binable
      val bin_size_t : ('a, 'a binable) Bin_prot.Size.sizer1
      val bin_write_t : ('a, 'a binable) Bin_prot.Map_to_safe.writer1
      val bin_write_t_ : ('a, 'a binable) Bin_prot.Unsafe_write_c.writer1
      val bin_read_t : ('a, 'a binable) Bin_prot.Map_to_safe.reader1
      val bin_read_t_ : ('a, 'a binable) Bin_prot.Unsafe_read_c.reader1
      val bin_read_t__ :
        ('a, int -> 'a binable) Bin_prot.Unsafe_read_c.reader1
      val bin_writer_t : ('a, 'a binable) Bin_prot.Type_class.S1.writer
      val bin_reader_t : ('a, 'a binable) Bin_prot.Type_class.S1.reader
      val bin_t : ('a, 'a binable) Bin_prot.Type_class.S1.t
    end
  module type S2 =
    sig
      type ('a, 'b) binable
      val bin_size_t : ('a, 'b, ('a, 'b) binable) Bin_prot.Size.sizer2
      val bin_write_t :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Map_to_safe.writer2
      val bin_write_t_ :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Unsafe_write_c.writer2
      val bin_read_t :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Map_to_safe.reader2
      val bin_read_t_ :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Unsafe_read_c.reader2
      val bin_read_t__ :
        ('a, 'b, int -> ('a, 'b) binable) Bin_prot.Unsafe_read_c.reader2
      val bin_writer_t :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Type_class.S2.writer
      val bin_reader_t :
        ('a, 'b, ('a, 'b) binable) Bin_prot.Type_class.S2.reader
      val bin_t : ('a, 'b, ('a, 'b) binable) Bin_prot.Type_class.S2.t
    end
  module Of_stringable :
    functor (M : Stringable.S->
      sig
        type binable = M.stringable
        val bin_size_t : binable Bin_prot.Size.sizer
        val bin_write_t : binable Bin_prot.Map_to_safe.writer
        val bin_write_t_ : binable Bin_prot.Unsafe_write_c.writer
        val bin_read_t : binable Bin_prot.Read_ml.reader
        val bin_read_t_ : binable Bin_prot.Unsafe_read_c.reader
        val bin_read_t__ : (int -> binable) Bin_prot.Unsafe_read_c.reader
        val bin_writer_t : binable Bin_prot.Type_class.writer
        val bin_reader_t : binable Bin_prot.Type_class.reader
        val bin_t : binable Bin_prot.Type_class.t
      end
end