#4484: Regression: Combination of GADTs and Type families
---------------------------------+------------------------------------------
    Reporter:  sjoerd_visscher   |        Owner:                                
    
        Type:  bug               |       Status:  merge                         
    
    Priority:  highest           |    Milestone:  7.0.1                         
    
   Component:  Compiler          |      Version:  7.1                           
    
    Keywords:                    |     Testcase:  
indexed-types/should_compile/T4484
   Blockedby:                    |   Difficulty:                                
    
          Os:  Unknown/Multiple  |     Blocking:                                
    
Architecture:  Unknown/Multiple  |      Failure:  GHC rejects valid program     
    
---------------------------------+------------------------------------------
Changes (by simonpj):

  * status:  new => merge
  * testcase:  => indexed-types/should_compile/T4484


Comment:

 Fixed by
 {{{
 Fri Nov 12 05:00:11 PST 2010  simo...@microsoft.com
   * A (final) re-engineering of the new typechecker

   Regression testing and user feedback for GHC 7.0 taught
   us a lot.  This patch fixes numerous small bugs, and some
   major ones (eg Trac #4484, #4492), and improves type
   error messages.

   The main changes are:

   * Entirely remove the "skolem equivalance class" stuff;
     a very useful simplification

   * Instead, when flattening "wanted" constraints we generate
     unification variables (not flatten-skolems) for the
     flattened type function application

   * We then need a fixup pass at the end, TcSimplify.solveCTyFunEqs,
     which resolves any residual equalities of form
         F xi ~ alpha

   * When we come across a definite failure (e.g. Int ~ [a]),
     we now defer reporting the error until the end, in case we
     learn more about 'a'.  That is particularly important for
     occurs-check errors.  These are called "frozen" type errors.

   * Other improvements in error message generation.

   * Better tracing messages

     M ./compiler/typecheck/Inst.lhs -5 +3
     M ./compiler/typecheck/TcCanonical.lhs -148 +228
     M ./compiler/typecheck/TcErrors.lhs -97 +160
     M ./compiler/typecheck/TcInteract.lhs -471 +180
     M ./compiler/typecheck/TcRnTypes.lhs -4 +13
     M ./compiler/typecheck/TcSMonad.lhs -84 +163
     M ./compiler/typecheck/TcSimplify.lhs -84 +245
     M ./compiler/typecheck/TcType.lhs +3
     M ./compiler/types/Coercion.lhs -1 +3
 }}}
 Regression test added.

 Pls merge


 Simon

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