#7347: Existential data constructors should not be promoted
---------------------------------+------------------------------------------
    Reporter:  simonpj           |       Owner:                  
        Type:  bug               |      Status:  merge           
    Priority:  normal            |   Milestone:                  
   Component:  Compiler          |     Version:  7.6.1           
    Keywords:                    |          Os:  Unknown/Multiple
Architecture:  Unknown/Multiple  |     Failure:  None/Unknown    
  Difficulty:  Unknown           |    Testcase:  polykinds/T7347 
   Blockedby:                    |    Blocking:                  
     Related:                    |  
---------------------------------+------------------------------------------

Comment(by goldfire):

 If you declare {{{KEx}}} as above, something weird happens when you
 promote (in 7.6.1): the type {{{KEx}}} gets promoted to a kind, but the
 kind-polymorphic data constructor {{{MkKEx}}} does not get promoted to a
 type. So, {{{KEx}}} becomes an uninhabited kind. This behavior is weird,
 but it seems not to violate any description of promotion: kind-polymorphic
 things are not promoted, and other (suitable) things are.

 So, one cannot write an {{{UnKEx}}} type instance, and thus there is no
 problem.

 I agree that this is far from urgent. But, if the checks you added to fix
 this bug added complexity, they could perhaps be removed. I believe the
 original implementation of naive promotion of existentials is the right
 one.

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