What about adding small wrappers for the Foldable functions maximum, maximumBy, minimum, minimumBy? For NonEmpty, the return type could be a instead of Maybe a:
import Data.Foldable as F
...
-- | Find the smallest element of a non-empty structure, according to its `Ord`
-- | instance.
minimum :: forall a f. (Ord a, Foldable f) => NonEmpty f a -> a
minimum xs@(NonEmpty x _) = fromMaybe x (F.minimum xs)