You are absolutely right! I missed that âletâ. And it does work, thanks.
On the other hand it is still not what I intended, so I decided not to use Monads in this particular case. I wanted to represent values that can fail and that have complete history of errors. So that if I calculate c = (liftM2 (+)) a b and if *both* a and b have failed, c would also fail plus it would have history of errors form a and b (and potentially itâs own). I tried to do this by combining Maybe and Output monads. Now I realize that as long as I am using liftM2 it is not possible to have history of errors from a and b - only form a. And as I moved to custom lift functions I realized I didnât need monads in the first place. Anyway, thanks for your help, it is very much appreciated. Regards, Pavel. I didnât know you can have âletâ without âinâ in do expressions, nice! _______________________________________________ Haskell-Cafe mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell-cafe