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

Reply via email to