Make_using_comparator builds a set from an element type that has a comparator.
Make_binable_using_comparator 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.