cabal install maybet
import Control.Monad.Maybe
f1 :: IO (Maybe Int)
f1 = return . Just $ 1
d2 :: Int -> IO (Maybe String)
d2 = return . Just . show
blah :: IO (Maybe (Int, String))
blah = do
runMaybeT $ do
a <- MaybeT f1
b <- MaybeT $ d2 a
return (a,b)
Or slightly rewritten:
f1 :: MaybeT IO Int
f1 = return 1
-- f1 = fail "why oh why?!?"
d2 :: Int -> MaybeT IO String
d2 = return . show
blah = do
runMaybeT $ doreturn (a,b)
a <- f1
b <- d2 aOn Mon, Mar 3, 2014 at 10:10 AM, Nathan Hüsken <nathan.huesken@posteo.de> wrote:
_______________________________________________Hey,
I want to write a function, which is basically a concatenation of functions of type “IO (Maybe a)”.
When they all where of type “Maybe a”, no Problem I would simple use the Maybe monad.func :: Maybe c func = do a <- f1 b <- d2 a ...
but now they are of type “IO (Maybe a)”. Is there some way of combing these in a similar smart way?
Thanks!
Nathan
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://www.haskell.org/mailman/listinfo/beginners