[GHC] #13898: Consolidate treatment of strictness in parser
GHC
ghc-devs at haskell.org
Thu Jun 29 21:32:32 UTC 2017
#13898: Consolidate treatment of strictness in parser
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: (none)
Type: task | Status: new
Priority: normal | Milestone: 8.4.1
Component: Compiler | Version: 8.0.1
(Parser) |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Currently GHC's treatment of binding strictness in the Haskell parser and
AST is the result of a long, winding evolution. Since Phab:D3670 we have
tracked strictness of variable bindings (e.g. `!x = ...`) in the
`SrcStrictness` in `FunRhs` (see `Note [Varieties of bindings]`). This is
parsed by ``. However, explicitly lazy bindings (e.g. `~x = ...`) are
parsed via a completely different means (see the rule starting with `~` in
`aexp`) and represented as `ELazyPat` until being mangled into a pattern
in `RdrHsSyn`. It seems to me like these two paths should be more
symmetric.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13898>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list