"Simon Peyton-Jones" <[EMAIL PROTECTED]> writes: > I didn't phrase it right. I meant that a let/lambda/if always > extends to the next relevant (not part of a smaller expression) > punctuation symbol; and if that phrase parses as an exp > that's fine, otherwise it's a parse error. So I should not really > speak in terms of 'ambiguity'. > > Perhaps we can simply say that > let .. in exp > is legal only if the phrase is followed by one of the punctuation > symbols. That's nice, because we don't need to talk of > "not part of a smaller expression". > > So (let x = 10 in x `div`) would be rejected because > x `div` > isn't a exp.
If you're going to modify the syntax in the report to match what implementors actually implement, you may also want to change the "illegal lexeme" definition for closing implicit layout. I believe that do a == b == c is (according to the Standard) legal syntax that means (do {a == b}) == c but I'll bet that most if not all Haskell parsers would get it wrong. Carl Witty _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell