Neil Mitchell <[EMAIL PROTECTED]> wrote: > > Right. In effect, as a matter of fact, the notation > > > > x <- a > > > > would become equivalent to > > > > let x = (<- a) > > Hmm, interesting. Consider: > > let x = 12 > let x = (<- x)
Okay, so the desugaring process wouldn't terminate in that case! One could either: (a) try to retain the equivalence in theory, but make it illegal to use x in a monadic subexpression when defining x; (b) we could abandon my claim that they are equivalent. > I'm not convinced either, a nice concrete example would let people > ponder this a bit more. I tried to provide something in my response to Simon. Here it is again: One could sugar: do tax <- getTax return $ map (\price -> price * (1 + tax)) bill into: do return $ map (\price -> price * (1 + (<- getTax))) someNums > What is nice to note is that all your answers > to my questions matched perfectly with what I thought should happen. That is nice. I'm still very uncomfortable with the <- syntax (a complete flip for me since this morning!); and a little uneasy about the use of case, if, lambdas, etc. Time to keep thinking, I guess. I'd like to take Simon's suggestion and do a wiki page about this; but it should probably be on the Haskell prime wiki, no? I'm not entirely clear on how to get an account there. I could add it to HaskellWiki, but I think that would be the wrong place for it. -- Chris Smith _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe