[GHC] #13898: Consolidate treatment of strictness in parser

#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
participants (1)
-
GHC