[Haskell-cafe] Missing common function for Maybe types

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


Hi!

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é
http://waiting-for-dev.github.io/about/


More information about the Haskell-Cafe mailing list