module Identifiable: sig .. end
Uniform interface for common data structures over various things.
module type Thing = sig .. end
module Pair: 
functor (A : Thing) -> functor (B : Thing) -> Thing  with type t = A.t * B.tmodule type S = sig .. end
module Make: 
functor (T : Thing) -> S  with type t := T.t