Module type Core_kernel.Stable2

type ('a1, 'a2) t
include Bin_prot.Binable.S2 with type ('a1, 'a2) t := ('a1'a2) t
type ('a, 'b) t
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t -> Bin_prot.Shape.t
val bin_size_t : ('a'b('a'b) t) Bin_prot.Size.sizer2
val bin_write_t : ('a'b('a'b) t) Bin_prot.Write.writer2
val bin_read_t : ('a'b('a'b) t) Bin_prot.Read.reader2
val __bin_read_t__ : ('a'b, int -> ('a'b) t) Bin_prot.Read.reader2
val bin_writer_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.writer
val bin_reader_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.reader
val bin_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.t
val compare : ('a1 -> 'a1 -> Core_kernel__.Import.int) -> ('a2 -> 'a2 -> Core_kernel__.Import.int) -> ('a1'a2) t -> ('a1'a2) t -> Core_kernel__.Import.int
include Ppx_sexp_conv_lib.Sexpable.S2 with type ('a1, 'a2) t := ('a1'a2) t
type ('a, 'b) t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> (Sexplib0.Sexp.t -> 'b) -> Sexplib0.Sexp.t -> ('a'b) t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> ('b -> Sexplib0.Sexp.t) -> ('a'b) t -> Sexplib0.Sexp.t
val map : ('a1'a2) t -> f1:('a1 -> 'b1) -> f2:('a2 -> 'b2) -> ('b1'b2) t