
#13603: Can't resolve levity polymorphic superclass -------------------------------------+------------------------------------- Reporter: Iceland_jack | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.0.1 Keywords: | Operating System: Unknown/Multiple LevityPolymorphism, TypeInType | Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- This works {{{#!hs {-# Language PolyKinds, TypeInType #-} import GHC.Exts (TYPE, RuntimeRep) class A (a :: TYPE rep) class A a => B (a :: TYPE rep) instance A b => A (a -> (b :: TYPE rep)) instance B b => B (a -> b) }}} but the moment you add (`b :: TYPE rep`) to the last line it stops working {{{#!hs -- t3I7.hs:9:10-40: error: … -- • Could not deduce (A b) -- arising from the superclasses of an instance declaration -- from the context: B b -- bound by the instance declaration at /tmp/t3I7.hs:9:10-40 -- • In the instance declaration for ‘B (a -> b)’ -- Compilation failed. {-# Language PolyKinds, TypeInType #-} import GHC.Exts (TYPE, RuntimeRep) class A (a :: TYPE rep) class A a => B (a :: TYPE rep) instance A b => A (a -> (b :: TYPE rep)) instance B b => B (a -> (b :: TYPE rep)) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13603 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler