[Haskell-cafe] Missing common function for Maybe types

Marc Busqué marc at lamarciana.com
Tue Jul 31 07:07:12 UTC 2018


I have two functions:

foo :: a -> Maybe b
bar :: a -> Maybe c

>From which I want to build a higher order function:

foobar :: a -> (a -> Maybe b) -> (a -> Maybe c) -> Either b c

The implementation I need is:

foobar x f g =
   case (f x) of
     Nothing -> g x
     Just y  -> Just y

I'm a bit surprised that looking at hoogle I don't find a built-in
solution for this quite common need for `Maybe` types (or perhaps for
any monad).

Am I looking in the wrong way? Does it exist a similar abstraction but
with a different shape?

Thanks in advance,

Marc Busqué

More information about the Haskell-Cafe mailing list