The least element of this Iterable based on order.
order
If the list is empty, return None.
Option<T> minimumBy(Order<T> order) => foldLeft( none(), (a, c) => some( a.match( () => c, (t) => order.compare(c, t) < 0 ? c : t, ), ));