Я думаю, что ответ, вероятно, заключается в том, что нет такой обобщенной функции. Как говорит djv, вы можете, возможно, использовать Data.Monoid, чтобы написать что-то вроде:
maybe' :: (Eq a, Monoid a) => b -> (a -> b) -> a -> b
maybe' repl f x = if x == mempty then repl else f x
Но я не знаю ни одной функции в стандартной библиотеке, подобной этой (или любой, которая могла бы быть легко скомбинирована для этого).