Module Predicate

Infinite sets over a chosen OrderedType.

All operations over sets are purely applicative (no side-effects).

module type OrderedType = sig ... end

Input signature of the functor Make.

module type S = sig ... end
module Make : functor (Ord : OrderedType) -> S with type elt = Ord.t

The Make functor constructs an implementation for any OrderedType.