#6093: Kind polymorphism fails with recursive type definition using different 
kind
----------------------------------------+-----------------------------------
  Reporter:  Ashley Yakeley             |          Owner:                  
      Type:  bug                        |         Status:  closed          
  Priority:  normal                     |      Milestone:                  
 Component:  Compiler (Type checker)    |        Version:  7.6.1           
Resolution:  fixed                      |       Keywords:                  
        Os:  Unknown/Multiple           |   Architecture:  Unknown/Multiple
   Failure:  GHC rejects valid program  |     Difficulty:  Unknown         
  Testcase:  polykinds/T6093            |      Blockedby:                  
  Blocking:                             |        Related:                  
----------------------------------------+-----------------------------------
Changes (by Ashley Yakeley):

  * status:  new => closed
  * resolution:  => fixed


Comment:

 OK, I see the problem. This compiles:

 {{{
 data R :: k -> * where
     MkR :: R f -> R (f ())
 }}}

 But this doesn't:

 {{{
 data R (t :: k) where
     MkR :: R f -> R (f ())
 }}}

 This is a different bug, and not so serious if you know the work-around.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6093#comment:12>
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

Reply via email to