module type S : sig ... end
module type OrderedType : sig ... end
module Make : functor (K : OrderedType) -> functor (V : OrderedType) -> S with type key = K.t and type value = V.t
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 : functor (L : OrderedType) -> functor (R : OrderedType) -> BIDIR with type left = L.t and type right = R.t