[GHC] #15795: Core lint error with unused kind variable in data type return kind

GHC ghc-devs at haskell.org
Tue Dec 11 18:48:06 UTC 2018


#15795: Core lint error with unused kind variable in data type return kind
-------------------------------------+-------------------------------------
        Reporter:  Iceland_jack      |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.6.1
      Resolution:                    |             Keywords:  TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by RyanGlScott):

 It's worth noting that this Core Lint error only appears to occur when GHC
 constructs a wrapper for `Prod`. In other words, the following errors:

 {{{#!hs
 data F :: forall (cat1 :: ob1). ob1 -> Type where
   Prod :: forall u (a :: u). F a
 }}}

 But this does //not// error:

 {{{#!hs
 data F :: forall (cat1 :: ob1). ob1 -> Type where
   Prod :: F a
 }}}

 Since in the latter code, `Prod` won't need a wrapper, and its type will
 simply be `forall {ob1} {cat1 :: ob1} (a :: ob1). F a`. (Currently,
 there's no way to write that with GHC's explicit `forall` syntax, so
 pretty much any attempt to write the type of `Prod` using a `forall` will
 trigger this error.)

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


More information about the ghc-tickets mailing list