Andre W B Furtado writes: | Roughly speaking, I'm in need of a monad (say MyIO) that interprets the | following code | | >f :: MyIO () | >f = do | > action1 | > action2 | > action3 | > ... | > return () | | | as applying action1 to g, then action2 to the SAME g (not the result of | action1) and so on... | | Of course, this "g" will be specified when starting the monad (something | like "runMyIO g"). Does this "composition monad" already exist? If no, can | anyone give me some hints to create my own?
I think it's called a reader monad or an environment monad. Here's a fairly simple version: instance Monad ((->) env) where return x = \env -> x m >>= f = \env -> f (m env) env _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell