minimumBy +base

minimumBy :: (a -> a -> Ordering) -> [a] -> a
base Data.List
The minimumBy function takes a comparison function and a list and returns the least element of the list by the comparison function. The list must be finite and non-empty.
minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
base Data.Foldable
The least element of a non-empty structure with respect to the given comparison function.