module type Infix = sig ... end
module type S = sig ... end
val lexicographic : ('a -> 'a -> int) list -> 'a -> 'a -> int
val lift : ('a -> 'a -> 'result) -> f:('b -> 'a) -> 'b -> 'b -> 'result
val reverse : ('a -> 'a -> 'result) -> 'a -> 'a -> 'result
val equal : ('a -> 'a -> int) -> 'a -> 'a -> bool
val max : ('a -> 'a -> int) -> 'a -> 'a -> 'a
val min : ('a -> 'a -> int) -> 'a -> 'a -> 'a
module Infix (T : sig ... end) : sig ... end
module Inherit (C : sig ... end) (T : sig ... end) : sig ... end
module Make (T : sig ... end) : sig ... end
module Poly (T : sig ... end) : sig ... end