[GHC] #11031: Record Pattern Synonym Cleanup

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


#11031: Record Pattern Synonym Cleanup
-------------------------------------+-------------------------------------
        Reporter:  mpickering        |                Owner:
            Type:  task              |               Status:  new
        Priority:  low               |            Milestone:
       Component:  Compiler          |              Version:  7.10.2
      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:                    |
-------------------------------------+-------------------------------------
Description changed by bgamari:

Old description:

> Ben comments that there are some loose ends with record pattern synonyms.
>

> * 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:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list