Well I'm trying to combine two monads here, Maybe and either the Fay or the IO monad. In the example code I just put return but otherwise in my real code "operation" has side-effects and needs the Fay monad in the case of the Fay program. I understand how to use lift if "operation" is pure, without using monads, but I have this trouble when it operates in another monad. I thought I understood it, but looking at the difference in behaviour in the examples I posted, maybe I don't. Emmanuel On Sat, Sep 7, 2013 at 9:11 AM, Daniel Trstenjak <daniel.trstenjak@gmail.com
wrote:
Hello Emmanuel,
And I tried to apply it to the haskell fay compiler, but failed:
http://stackoverflow.com/questions/18667530/dont-understand-this-liftm2-beha...
Not sure whether it's a fay bug or something about the fay monad or liftM2 which i don't understand.
The point of lifting is, that you lift an operation into an other "context", so that the operation itself hasn't to operate in the same "context".
I can't see how even your GHC version of 'operation' should work, because in both cases it should be something like:
liftM2 (++) getValue1 getValue2
or in applicative style
(++) <$> getValue1 <*> getValue2
Greetings, Daniel
_______________________________________________ Beginners mailing list Beginners@haskell.org http://www.haskell.org/mailman/listinfo/beginners