[GHC] #12503: Template Haskell regression: GHC erroneously thinks a type variable is also a kind

GHC ghc-devs at haskell.org
Wed Jan 25 20:27:07 UTC 2017


#12503: Template Haskell regression: GHC erroneously thinks a type variable is also
a kind
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  goldfire
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Template Haskell  |              Version:  8.0.1
      Resolution:                    |             Keywords:  TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  GHC rejects       |  Unknown/Multiple
  valid program                      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 Yuck yuck yuck. The problem is that this code assumes that two variables
 with the same `OccName` are the same. This will always be true in user-
 written code. But it's not true with `Exact` names.

 Ryan's suggestion to fix this makes some sense, but it's very heavy. I
 will propose something altogether radical: skip the check for `Exact`
 names. This check serves but one purpose: to allow people who want
 `-XPolyKinds` but are skittish about `-XTypeInType` to know that they have
 wandered into `-XTypeInType`-land. I foresee a future where `-XTypeInType`
 and `-XPolyKinds` become synonymous (not unlike how `-XRankNTypes` and
 `-XRank2Types` are synonymous) and this whole check can be dropped.

 Template Haskell already is somewhat anarchic about when it requires
 extensions. This choice would contribute to the anarchy, but in a very
 small way. And it's very easy to just skip the check!

 To be clear: the only people this hurts are people who want to avoid
 `-XTypeInType` while still using Template Haskell and who happen to use TH
 to generate some code that is accepted only with `-XTypeInType`. (And who
 like the letter `k`.) I argue that this set of people is small.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12503#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list