Module Set 
module Set: sig .. end
Sets over ordered types.
 This module implements the set data structure, given a total ordering
 function over the set elements. All operations over sets
 are purely applicative (no side-effects).
 The implementation uses balanced binary trees, and is therefore
 reasonably efficient: insertion and membership take time
 logarithmic in the size of the set, for instance.
module type S = sig .. end
Output signature of the functor 
Set.Make.
 
module Make: 
Functor building an implementation of the set structure
 given a totally ordered type.