
#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): I agree with int-e that this might break some code, like his {{{ main = print (typeRep (Proxy :: Proxy Proxy)) }}} The problem is that in the old system, the `Typeable` instance is inferred with no need to consider the kind at all, so it becomes completely known at compile time. In the new system there will be an ambiguity. If my test with my mock implementation is any guide, GHC currently (well, 7.8.3) refuses to resolve such ambiguities. As I suggested in private, a case like the above might be fixed backwards- compatibly by making kinds in need of unavailable `Kindable` evidence default to `*` in a very similar way to numerical defaulting. I suspect that if a user isn't providing an explicit kind signature that is the most likely result they want anyway. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9858#comment:53 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler