CCBijectionFunctor to build a bijection Represents 1-to-1 mappings between two types. Each element from the "left" is mapped to one "right" value, and conversely.
module type OrderedType = sig ... endmodule type S = sig ... endmodule Make
(L : OrderedType)
(R : OrderedType) :
S with type left = L.t and type right = R.t