[GHC] #11031: Record Pattern Synonym Cleanup

GHC ghc-devs at haskell.org
Wed Oct 28 16:13:26 UTC 2015


#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


More information about the ghc-tickets mailing list