Module Tuple

Functors and signatures for dealing with modules for tuples.


module T2 : sig .. end
Signature for a 2-tuple module
module T3 : sig .. end
Signature for a 3-tuple module

These functors allow users to write:

   module Foo = struct
     include Tuple.Make       (String) (Int)
     include Tuple.Comparable (String) (Int)
     include Tuple.Hashable   (String) (Int)
     include Tuple.Binable    (String) (Int)
module Make (T1 : sig .. end) (T2 : sig .. end) : sig .. end
module type Comparable_sexpable = sig .. end
module type Hashable_sexpable = sig .. end
The difference between Hashable and Hashable_t functors is that the former's result type doesn't contain type t and the latter does.
module Sexpable (S1 : Sexpable.S) (S2 : Sexpable.S) : Sexpable.S with type t := Make(S1)(S2).t
module Binable (B1 : Binable.S) (B2 : Binable.S) : Binable.S with type t := Make(B1)(B2).t