Hi > if you write : > > let x = (<-a):x > > is it possible that is desugars into : > > temp <-a > let x = temp:x > > that would'nt work ?
That would work, since 'a' doesn't refer to 'x'. I can't think of a real example where it becomes an issue, but the scope within 'a' has changed. > Also : > > > do case x of > > [] -> return 1 > > (y:ys) -> f (<- g y) > > Is it not possible that is desugars to > > do case x of > [] -> return 1 > (y:ys) -> g y >>= \temp -> f temp See the rule about always binding to the previous line of a do block. This case then violates that. Thanks Neil _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe