Thanks a lot Vlad and Shayne, that indeed did the trick!
Out of curiosity, how could I have figured out that this was the culprit? The parse
error I got was a bit puzzling, and I couldn't find any flags that would give more information
(I think I was looking for the parser equivalent of -ddump-tc-trace).
Best,
Csongor
Hi Csongor,
I believe the reason for this failure is that a -> @m b gets parsed as a -> @(m b).
Why is that? Because a ‘btype’ includes type-level application.
If you replace the ‘btype’ after PREFIX_AT with an ‘atype’, this particular issue should go away. At least that’s my hypothesis, I haven’t tested it.
I confirm that this is correct and with that change the example string reduces as hoped.
- Vlad
Also, with that correction there are no new shift/reduce conflicts. The original rule gave rise to 3.
-- Shayne Fletcher