
#15142: GHC HEAD regression: tcTyVarDetails -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: goldfire Type: bug | Status: new Priority: highest | Milestone: 8.6.1 Component: Compiler (Type | Version: 8.5 checker) | Keywords: TypeInType, Resolution: | TypeFamilies, CUSKs Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Simon says: when there is a CUSK, quantify over any free kind variables. Example at the term level {{{ f :: forall (a :: Proxy k). Proxy a -> Int }}} Then we infer (notice the `k2`): {{{ f :: forall k2 (k :: k2). forall (a :: Proxy k). Proxy a -> Int }}} So similarly at tke type level if we have this CUSK {{{ data T (a :: Proxy k) :: Proxy a -> Type where ... }}} we should quantify over the kind to get {{{ T :: forall k2 (k :: k2). forall (a :: Proxy k). Proxy a -> Type }}} This would require changing code in the CUSK case of `kcLHsQTyVars`, which currently calls `report_non_cusk_tvs` to complain. Instead, generalise. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15142#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler