Simon Peyton-Jones <[EMAIL PROTECTED]> wrote:
> Furthermore there must be no lambda between the "monadic splice" and the "do".

I'm curious about this.

One could sugar:

    do tax <- getTax
       return $ map (\price -> price * (1 + tax)) bill

into:

    do return $ map (\price -> price * (1 + (<- getTax))) someNums

Do you not think this is desirable?  Is there a negative side-effect 
that I'm not noticing?

I sort of see this in the same boat as Neil's example with if/then/else.  
The meaning may not be precisely what you'd expect... but mind-reading 
is hard, and it's more consistent to just say "find the innermost 
containing do block" than make up new rules for each piece of syntax.

Granted, a special case of "it's an error" is far more appealing than 
the corresponding special case for if; but I don't yet see a reason for 
this exception to the rule either.

-- 
Chris Smith

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to