
Again, I don't see the ambiguity, and I think GHC would be able to infer
#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:55 goldfire]: this type without trouble... I don't see how this is a special case, really. With that example, I've mostly been convinced that constraints separating out kinds aren't necessary. I still think it would help backwards compatibility if kinds in `Typeable` contexts defaulted to `*` in situations exactly analogous to when types with numerical contexts do. Once again, int-e's test case is illustrative: {{{ main :: IO () main = print (typeRep (Proxy :: Proxy Proxy)) }}} As far as I understand, without the type signature a solver would infer a type of {{{ main :: Typeable (Proxy :: k -> *) => IO () }}} and by defaulting `k` to `*` the code would still work, and probably do what was originally intended. Without defaulting it seems to me that it cannot work either with or without a signature. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9858#comment:57 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler