On Tue, Feb 26, 2002 at 07:30:44AM -0800, Simon Peyton-Jones wrote:
Replace "The ambiguity is resolved by the meta rule that each of these constructs extends as far to the right as possible" by
"The ambiguity is resolved by the meta rule that each of these constructs extends to the nearest occurrence of the following punctuation symbols that does not form part of a nested expression:
) ] } | ; , .. where of then else
I didn't think this was going to be pretty, but it doesn't quite work either. There's no ambiguity in (let x = 10 in x `div`) The context-free grammar gives exactly one parse for this, and we want to disallow it. It seems you need to retain the old meta-rule for the ambiguities but also explicitly exclude certain forms.