
#11031: Record Pattern Synonym Cleanup -------------------------------------+------------------------------------- Reporter: mpickering | Owner: Type: task | Status: new Priority: low | Milestone: Component: Compiler | Version: 7.11 Resolution: | Keywords: newcomer Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * version: 7.10.2 => 7.11 Old description:
Ben comments that there are some loose ends with record pattern synonyms (Phab:D1152),
* It's still not clear to me that the free variables produced in `rnPatSynBind` are correct * Perhaps in the future we want to refactor `tc_single` to use a function which extends the typechecking environment instead of using `setGblEnv` * @mpickering's suggested refactoring of `RecSelId` to `RecSelId (Either PatSyn TyCon) Bool` described in the comment in `TcExpr.hs` * There is a TODO in `tc_patsyn_finish` which should either be clarified so it can be considered actionable, removed, or just fixed
The comment from TcExpr was:
I tried to refactor RecSelId to RecSelId [DataCon] Bool but this causes some pain when it comes to the interface files. Next try it is something like RecSelId (Either PatSyn TyCon) Bool with the aim for something better in the future.
New description: Ben comments that there are some loose ends with record pattern synonyms (Phab:D1152), * It's still not clear to me that the free variables produced in `rnPatSynBind` are correct * Perhaps in the future we want to refactor `tc_single` to use a function which extends the typechecking environment instead of using `setGblEnv` * @mpickering's suggested refactoring of `RecSelId` to `RecSelId (Either PatSyn TyCon) Bool` described in the comment in `TcExpr.hs` * There is a TODO in `tc_patsyn_finish` which should either be clarified so it can be considered actionable, removed, or just fixed The comment from `TcExpr` was:
I tried to refactor `RecSelId `to `RecSelId [DataCon] Bool` but this causes some pain when it comes to the interface files. Next try it is something like `RecSelId (Either PatSyn TyCon) Bool` with the aim for something better in the future.
-- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11031#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler