On Thu, Jun 4, 2015 at 3:52 PM, Adam Sandberg Eriksson <adam@sandbergericsson.se> wrote:
However after adding relevant rules for '~' in the parser[2] I get an
explosion of shift/reduce conflicts as well as 4 extra reduce/reduce
conflicts, see [3] for the happy info (the states with 36 shift/reduce
conflicts seem to be the problematic ones)

Looks to me like it's confused about whether a ~ is part of an equality constraint or is a laziness annotation. The former would be illegal at that point, though, I'd think? Somewhere it believes a constraint might be possible there, via btype.

As ezyang says in the message I see just came in, you'll need extra production rules to distinguish that top level. Although I'd wonder why it believes an equality constraint is acceptable there in the first place; is that a lurking bug in the parser?

--
brandon s allbery kf8nh                               sine nomine associates
allbery.b@gmail.com                                  ballbery@sinenomine.net
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net