#6093: Kind polymorphism fails with recursive type definition using different kind ----------------------------------------+----------------------------------- Reporter: Ashley Yakeley | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type checker) | Version: 7.4.1 Keywords: | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: GHC rejects valid program Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ----------------------------------------+-----------------------------------
Comment(by Ashley Yakeley): Just to be clear, IOWitness is also polykinded. (It has to be, so I can for instance represent "Maybe Bool".) {{{ IOWitness : k -> * }}} So I think it should be this: {{{ Type :: forall k. k -> * SimpleType :: forall k. forall (a:k). IOWitness k a -> Type k a ConstructedType :: forall k k2. forall (f:k2->k) (a:k2). Type (k2->k) g -> Type k2 a -> Type k (f a) }}} This should be possible, should it not? -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6093#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs