
#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