[Haskell-cafe] IO (Either a Error) question

Miguel Mitrofanov miguelimo38 at yandex.ru
Sat May 1 17:54:42 EDT 2010


It's called "monad transformers"

func1' :: Int -> EitherT Error IO String
func1' n = EitherT $ func1 n
func2' :: Int -> EitherT Error IO String
func2' s = EitherT $ func2 n
runCalc' :: Int -> EitherT Error IO [String]
runCalc' param = func1' param >>= func2'
runCalc :: Int -> IO (Either Error [String])
runCalc param = runEitherT $ runCalc param

(EitherT is on Hackage)

On 2 May 2010, at 01:37, Eugeny N Dzhurinsky wrote:

> Hello!
>
> I have some sort of strange question:
>
> assume that there are 2 functions
>
> func1 :: Int -> IO (Either Error String)
> func2 :: String -> IO (Either Error [String])
>
> in case if there will be no IO involved, I could use
> Control.Monad.Either and write something like
>
> runCalc :: Int -> IO (Either Error [String])
> runCalc param = func1 param >>= func2
>
> but with that IO stuff I can't simply do in this way. Can somebody  
> please
> suggest, how to combine IO and Either monads, if that's even possible?
>
> Thank you in advance!
>
> -- 
> Eugene Dzhurinsky
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list