fn must be a predicate of two arguments; returns the elementwhich, according to the predicate, beats all the others.