Make builds a set from an element type that has a
compare function but doesn't
have a comparator. This generates a new comparator.
Make_binable is similar, except the element and set types support
Returns a min (resp max) element from the collection using the provided
function. In case of a tie, the first element encountered while traversing the
collection is returned. The implementation uses
fold so it has the same
None iff the collection is empty.