
#9858: Typeable instances should be kind-aware -------------------------------------+------------------------------------- Reporter: dreixel | Owner: dreixel Type: bug | Status: new Priority: highest | Milestone: 7.10.1 Component: Compiler | Version: 7.9 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: None/Unknown | Unknown/Multiple Blocked By: | Test Case: Related Tickets: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by oerjan): Replying to [comment:42 goldfire]:
What's nice about this one is that it should break no existing code.
It may be too weird to count as "existing code", but can it handle this? {{{ {-# LANGUAGE PolyKinds #-} {-# LANGUAGE KindSignatures #-} {-# LANGUAGE DeriveDataTypeable #-} import Data.Typeable newtype C a b = C () deriving Typeable step :: Proxy (a :: k) -> Proxy (C a :: k -> *) step Proxy = Proxy nest :: Typeable a => Int -> Proxy a -> TypeRep nest 0 x = typeRep x nest n x = nest (n-1) (step x) main = print $ nest 10 (Proxy :: Proxy ()) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9858#comment:43 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler