Module signature for a Set.
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.