Having the consistency with `sortOn` seems like a win, but the reason we
have `sortOn` is that the implementation is not completely trivial. It has
to be ever so slightly smart to reuse the projections when sorting.
On the other hand, we have the definitions:
minimumOn = minimumBy . comparing
maximumOn = maximumBy . comparing
Itâs not obvious to me that this needs its own name instead of simply
mentioning that `comparing` exists in the haddock documentation for
`minimumBy` and `maximumBy`.
Is it a foregone conclusion that we should maintain consistency with
`minimum` and `maximum` on their result types? I consider these types
mistakes and would have preferred to see `Maybe` involved.
minimumOn :: (Foldable t, Ord b) => (a -> b) -> t a -> Maybe a
Iâm not sure why it makes sense to force ourselves into returning an
imprecise exception in the empty list case.