
#12928: Too easy to trigger CUSK condition using TH -------------------------------------+------------------------------------- Reporter: int-index | Owner: Type: feature request | Status: new Priority: high | Milestone: Component: Compiler (Type | Version: 8.0.1 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by simonpj): Right. In ''type signatures'' we look at the type signature '''all by itself''', quite '''independent of the definition''', and generalise any kind variables. So when you write {{{ fffSym0 :: TyFun (Proxy a) () -> Type }}} we'll behave (as you say) as if you wrote: {{{ fffSym0 :: forall k. forall (a:k). TyFun (Proxy a) () -> Type }}} I agree that this would be reasonable behaviour for a type-level kind sinature. Does everyone agree? BUT we don't have separate type-level kind signatures (yet). If we did, yes. But as-is, do we really want to trigger generalisation when (and only when) the CUSK conditions are satisfied. Maybe so...? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/12928#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler