functor
  (Binable : S2) (M : sig
                        type ('a, 'b) t
                        val to_binable :
                          ('a, 'b) Binable0.t -> ('a, 'b) Binable.t
                        val of_binable :
                          ('a, 'b) Binable.t -> ('a, 'b) Binable0.t
                      end->
  sig
    val bin_size_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Size.sizer2
    val bin_write_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Write.writer2
    val bin_read_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Read.reader2
    val __bin_read_t__ : ('a, 'b, int -> ('a, 'b) M.t) Bin_prot.Read.reader2
    val bin_writer_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Type_class.S2.writer
    val bin_reader_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Type_class.S2.reader
    val bin_t : ('a, 'b, ('a, 'b) M.t) Bin_prot.Type_class.S2.t
  end