module Comparable_intf:sig..end
module type Infix = Polymorphic_compare_intf.Infixmodule type Polymorphic_compare = Polymorphic_compare_intf.Stype 'a bound = 
| | 
Incl of  | 
| | 
Excl of  | 
| | 
Unbounded | 
module type Validate =sig..end
module type With_zero =sig..end
module type S_common =sig..end
module type S =sig..end
module type Map_and_set_binable =sig..end
module type S_binable =sig..end
ascending is identical to compare. descending x y = ascending y x.  These are
      intended to be mnemonic when used like List.sort ~cmp:ascending and List.sort
      ~cmp:descending, since they cause the list to be sorted in ascending or descending
      order, respectively.
      module Foo : sig
        type t = ...
        include Comparable.S with type t := t
      end
    
    Then use Comparable.Make in the struct (see comparable.mli for an example).