GHC 8.6 comes with an extension, “block arguments”, that entails a drastic change to the parser. You can find the change specification here, but the tl;dr is that you can now often omit parentheses and $ invocations associated with do blocks:
local f do
thing1
thing2
rather than
local f $ do
thing1
thing2
This has drastic effects on the grammar—in the words of the proposal author:
Unless a special care is taken, an implementation will add a large number of shift-reduce conflicts to the parser, due to the reliance on the meta-rule mentioned above
This is a nontrivial change, but it’s one we should ultimately make.
GHC 8.6 comes with an extension, “block arguments”, that entails a drastic change to the parser. You can find the change specification here, but the tl;dr is that you can now often omit parentheses and
$
invocations associated withdo
blocks:rather than
This has drastic effects on the grammar—in the words of the proposal author:
This is a nontrivial change, but it’s one we should ultimately make.