module Tuple: Tuple
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)
   end
  
module Make: functor (T1 : sigend) -> functor (T2 : sigend) -> sig .. end
module type Comparable_sexpable = sig .. end
module Comparable: 
module type Hashable_sexpable = sig .. end
module Hashable: 
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 Hashable_t: 
module Sexpable: