module type Infix = sig ... endmodule type S = sig ... endval lexicographic : ('a -> 'a -> int) list -> 'a -> 'a -> intval lift : ('a -> 'a -> 'result) -> f:('b -> 'a) -> 'b -> 'b -> 'resultval reverse : ('a -> 'a -> 'result) -> 'a -> 'a -> 'resultval equal : ('a -> 'a -> int) -> 'a -> 'a -> boolval max : ('a -> 'a -> int) -> 'a -> 'a -> 'aval min : ('a -> 'a -> int) -> 'a -> 'a -> 'amodule Infix (T : sig ... end) : sig ... endmodule Inherit (C : sig ... end) (T : sig ... end) : sig ... endmodule Make (T : sig ... end) : sig ... endmodule Poly (T : sig ... end) : sig ... end