module CCMultiMap: sig .. end
Multimap
type 'a sequence = ('a -> unit) -> unit 
module type S = sig .. end
module type OrderedType = sig .. end
module Make (K : OrderedType)  (V : OrderedType) : S  with type key = K.t and type value = V.t
Two-Way Multimap
    Represents n-to-n mappings between two types. Each element from the "left"
    is mapped to several right values, and conversely.
module type BIDIR = sig .. end
module MakeBidir (L : OrderedType)  (R : OrderedType) : BIDIR 
  with type left = L.t and type right = R.t