
#13197: Perplexing levity polymorphism issue -------------------------------------+------------------------------------- Reporter: bgamari | Owner: Type: bug | Status: new Priority: highest | Milestone: 8.2.1 Component: Compiler (Type | Version: 8.1 checker) | Resolution: | Keywords: typeable 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 bgamari): For the record the above fails with, {{{ Test.hs:34:33: error: • Could not deduce: (r2 :: RuntimeRep) ~~ ('LiftedRep :: RuntimeRep) from the context: ((* :: *) ~~ (* :: *), (k :: *) ~~ ((a2 -> b) :: *)) bound by a pattern with constructor: TypeFun :: forall (a :: TYPE r1) (b :: TYPE r2). TypeRep (TYPE r1) a -> TypeRep (TYPE r2) b -> TypeRep * (a -> b), in a pattern binding in pattern guard for an equation for ‘toApp’ at Test.hs:32:5-19 or from: ((* :: *) ~~ (TYPE r1 :: *), (k1 :: *) ~~ (a2 :: TYPE r1)) bound by a pattern with constructor: HRefl :: forall k2 (a :: k2). (:~~:) k2 k2 a a, in a pattern binding in pattern guard for an equation for ‘toApp’ at Test.hs:33:10-14 ‘r2’ is a rigid type variable bound by a pattern with constructor: TypeFun :: forall (a :: TYPE r1) (b :: TYPE r2). TypeRep (TYPE r1) a -> TypeRep (TYPE r2) b -> TypeRep * (a -> b), in a pattern binding in pattern guard for an equation for ‘toApp’ at Test.hs:32:5-19 When matching the kind of ‘b’ Expected type: TypeRep (k1 -> b) a Actual type: TypeRep k a • In the first argument of ‘TypeApp’, namely ‘f’ In the first argument of ‘SomeTypeRep’, namely ‘(TypeApp f a)’ In the second argument of ‘($)’, namely ‘SomeTypeRep (TypeApp f a)’ • Relevant bindings include res :: TypeRep (TYPE r2) b (bound at Test.hs:32:17) | 34 | = Just $ SomeTypeRep (TypeApp f a) | ^ }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13197#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler