[GHC] #6093: Kind polymorphism fails with recursive type definition using different kind

GHC cvs-ghc at haskell.org
Wed May 23 07:25:15 CEST 2012


#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



More information about the Glasgow-haskell-bugs mailing list