Datatype_sig.Prod2
module B1 : S
module B2 : S
type t = B1.t * B2.t
val equal : t -> t -> bool
Any notion of equality is allowed, as long as it is an equivalence relation, and that if a == b, then equal a b.
a == b
equal a b
val compare : t -> t -> int
compare is a total order, and should be compatible with equal.
compare
val hash : t -> int
hash requires that equal values have the same hash.
hash
val pretty : Stdlib.Format.formatter -> t -> unit