#12503: Template Haskell regression: GHC erroneously thinks a type variable is also a kind -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: goldfire Type: bug | Status: patch 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): Phab:D3022 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Ryan Scott <ryan.gl.scott@…>): In [changeset:"283a346586e5bf711ecd8cc61263d87771f8f744/ghc" 283a3465/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="283a346586e5bf711ecd8cc61263d87771f8f744" Prevent Template Haskell splices from throwing a spurious TypeInType error Summary: There was a rather annoying corner case where splicing poly-kinded Template Haskell declarations could trigger an error muttering about `TypeInType` not being enabled, whereas the equivalent non-TH code would compile without issue. This was causing by overzealous validity check in the renamer, wherein failed to distinguish between two different `Exact` names with the same `OccName`. As a result, it mistakenly believed some type variables were being used as both type and kind variables simultaneously! Ack. This avoids the issue by simply disabling the aforementioned validity check for Exact names. Fixes #12503. Test Plan: ./validate Reviewers: austin, bgamari, goldfire Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3022 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12503#comment:11> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler