StrictData and the parser

Edward Z. Yang ezyang at
Thu Jun 4 20:05:21 UTC 2015

Hello Adam,

At a guess, ~ is ambiguous with the type equality syntax a ~ b.
You'll probably have to add a new production for types (similar
to atype) which are at the top level of a data constructor definition.

I recently wrote some documentation on how to interpret Happy
info files.  There hasn't been a release yet but the docs
are here:


Excerpts from Adam Sandberg Eriksson's message of 2015-06-04 12:52:02 -0700:
> Hello *,
> I'm working on the -XStrict language extension[1] for this years Google
> summer of code. I've started with the smaller -XStrictData (as
> documented at the wiki) and have the internals mostly figured out.
> 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), I also fail to parse the
> test file [4] with the error
> DsStrictData.hs:15:1: error:
>     parse error (possibly incorrect indentation or mismatched brackets)
> Can anyone offer some guidance on what the appropriate changes to the
> parser are to make these "lazyness" marks work?
> Thanks,
> Adam
> [1]:
> [2]:
> [3]:
> [4]:

More information about the ghc-devs mailing list