module Concrete : functor (V : Sig.COMPARABLE) -> sig ... endmodule Abstract : functor (V : Sig.ANY_TYPE) -> sig ... endmodule ConcreteLabeled : functor (V : Sig.COMPARABLE) -> functor (E : Sig.ORDERED_TYPE_DFT) -> sig ... endmodule AbstractLabeled : functor (V : Sig.ANY_TYPE) -> functor (E : Sig.ORDERED_TYPE_DFT) -> sig ... endmodule ConcreteBidirectional : functor (V : Sig.COMPARABLE) -> sig ... endmodule ConcreteBidirectionalLabeled : functor (V : Sig.COMPARABLE) -> functor (E : Sig.ORDERED_TYPE_DFT) -> sig ... end