[GHC] #7176: Failure to let kind variable remain uninstantiated when not needed

GHC cvs-ghc at haskell.org
Wed Apr 3 19:20:48 CEST 2013


#7176: Failure to let kind variable remain uninstantiated when not needed
-------------------------------+--------------------------------------------
  Reporter:  goldfire          |          Owner:                        
      Type:  bug               |         Status:  closed                
  Priority:  normal            |      Milestone:                        
 Component:  Compiler          |        Version:  7.6.1-rc1             
Resolution:  fixed             |       Keywords:  PolyKinds TypeFamilies
        Os:  Unknown/Multiple  |   Architecture:  Unknown/Multiple      
   Failure:  None/Unknown      |     Difficulty:  Unknown               
  Testcase:  polykinds/T7176   |      Blockedby:                        
  Blocking:                    |        Related:                        
-------------------------------+--------------------------------------------

Comment(by simonpj@…):

 commit 1128f1e02ff06fee89b62fb756ac0c28edcf4625
 {{{
 Author: Simon Peyton Jones <simonpj at microsoft.com>
 Date:   Wed Apr 3 14:37:50 2013 +0100

     This changes fixes a bad error in canonicalisation, concerning kind
 equality

     We care careful not to construct a canonical equality whose LHS and
 RHS
     have incompatible kinds.  (This is one of the invariants of a
 canonical
     equality.)  See Note [Equalities with incompatible kinds].  However,
     what I had not dealt with is when LHS and RHS *look* as if they have
     different kinds, but after zonking they become the same.  Bad!

     (This led to an ASSERT failure in the test for Trac #7176.)

  compiler/typecheck/TcCanonical.lhs |  111
 +++++++++++++++++++++---------------
  1 files changed, 65 insertions(+), 46 deletions(-)
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7176#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the ghc-tickets mailing list