module type S0_without_comparator : sig ... endmodule type S0 : sig ... endThe polymorphic signatures require a mapping function so people can write conversion functions without either (1) re-implementing the mapping function inline or (2) reaching into the unstable part of the module.
module type S1 : sig ... endmodule type S2 : sig ... endmodule type S3 : sig ... endmodule type S4 : sig ... end