Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : 

http://hackage.haskell.org/trac/ghc/changeset/50d0293555691012f96259de7f8682b94db58517

>---------------------------------------------------------------

commit 50d0293555691012f96259de7f8682b94db58517
Author: [email protected] <unknown>
Date:   Thu Feb 17 14:09:21 2011 +0000

    Use "on the spot" solving for fundeps
    
    When we spot an equality arising from a functional dependency,
    we now use that equality (a "wanted") to rewrite the work-item
    constraint right away.  This avoids two dangers
    
     Danger 1: If we send the original constraint on down the pipeline
               it may react with an instance declaration, and in delicate
           situations (when a Given overlaps with an instance) that
           may produce new insoluble goals: see Trac #4952
    
     Danger 2: If we don't rewrite the constraint, it may re-react
               with the same thing later, and produce the same equality
               again --> termination worries.
    
    To achieve this required some refactoring of FunDeps.lhs (nicer
    now!).
    
    This patch also contains a couple of unrelated improvements
    
    * A bad bug in TcSMonad.nestImplicTcS whereby the Tcs tyvars
      of an outer implication were not untouchable inside
    
    * Improved logging machinery for the type constraint solver;
      use -ddump-cs-trace (probably with a wider default line width
      -dppr-cols=200 or something)

 compiler/main/DynFlags.hs          |    2 +
 compiler/typecheck/TcCanonical.lhs |   79 ++++++++-
 compiler/typecheck/TcInteract.lhs  |  335 +++++++++++++++++++++---------------
 compiler/typecheck/TcRnTypes.lhs   |    7 +-
 compiler/typecheck/TcSMonad.lhs    |  114 +++++--------
 compiler/types/FunDeps.lhs         |  293 +++++++++++++++++++-------------
 6 files changed, 501 insertions(+), 329 deletions(-)


Diff suppressed because of size. To see it, use:

    git show 50d0293555691012f96259de7f8682b94db58517

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to