[GHC] #11142: Type-level skolem capture leads to core lint error

GHC ghc-devs at haskell.org
Tue Dec 1 15:39:24 UTC 2015


#11142: Type-level skolem capture leads to core lint error
-------------------------------------+-------------------------------------
        Reporter:  goldfire          |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.0.1
       Component:  Compiler (Type    |              Version:  7.10.2
  checker)                           |
      Resolution:                    |             Keywords:
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 goldfire):

 Hmm. On your branch, how is it decided when to abstract over kind
 variables? Here are two functions with explicit kind variables written:

 {{{
 ex1 :: (forall k (a :: k). Proxy a -> ()) -> ()
 ex2 :: forall k. (forall (a :: k). Proxy a -> ()) -> ()
 }}}

 These are different, and both are conceivably useful. How are they
 distinguished on your branch? In HEAD, there is a consistent rule: if a
 kind variable is first mentioned in a tyvarbinder, then the kind variable
 is brought into scope in the same list of tyvarbinders. Otherwise, it's at
 the top level.

 What's the new rule?

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


More information about the ghc-tickets mailing list