
I hadn't noticed they were different types...I can't say I love that API choice. On 31/07/18 14:58, Marc Busqué wrote:
On Tue, 31 Jul 2018, Nigel Rantor wrote:
Your `foobar` function cannot work, it doesn't handle the case when the URL is neither http nor https.
I would use catMaybes and headMay to work this out...untested code, and you'll need the `safe` library for headMay too...
parse :: ByteString -> Maybe (Url Http, Option scheme) parse input = headMay $ catMaybes $ fmap input [parseUrlHttp, parseUrlHttps]
And everything is lazy so if the input gets parsed correctly by the first call you never actually perform the second one....
Thanks Nigel! The problem is that the return type could be an `Url Http` or an `Url Https`, so that wouldn't work. But an answer before by David Feuer worked for my case:
``` boo :: Maybe a -> Maybe b -> Maybe (Either a b) boo ma mb = (Left <$> ma) <|> (Right <$> mb) ```
Marc Busqué http://waiting-for-dev.github.io/about/
n
On 31/07/18 08:07, Marc Busqué wrote:
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/
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.
_______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.