Interfaces used for hiding and replacing polymorphic compare. Including a module with interface S should hide the majority of functions that use polymorphic compare.
S
module type Infix : sig ... end
module type S : sig ... end