Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : ghc-new-flavor
http://hackage.haskell.org/trac/ghc/changeset/dd7522c3b14bce1af94bffd61c4d38e670f53495
>---------------------------------------------------------------
commit dd7522c3b14bce1af94bffd61c4d38e670f53495
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Mon May 7 17:40:34 2012 +0100
Yet another major refactoring of the constraint solver
This is the result of Simon and Dimitrios doing a code walk through.
There is no change in behaviour, but the structure is much better.
Main changes:
* Given constraints contain an EvTerm not an EvVar
* Correspondingly, TcEvidence is a recursive types that uses
EvTerms rather than EvVars
* Rename CtFlavor to CtEvidence
* Every CtEvidence has a ctev_pred field. And use record fields
consistently for CtEvidence
* The solved-constraint fields of InertSet (namely inert_solved and
inert_solved_funeqs) contain CtEvidence, not Ct
There is a long cascade of follow-on changes.
compiler/coreSyn/CoreUtils.lhs | 10 +-
compiler/deSugar/DsBinds.lhs | 53 ++--
compiler/typecheck/Inst.lhs | 72 ++---
compiler/typecheck/TcCanonical.lhs | 252 ++++++++-------
compiler/typecheck/TcErrors.lhs | 48 ++--
compiler/typecheck/TcEvidence.lhs | 68 +++--
compiler/typecheck/TcHsSyn.lhs | 29 +-
compiler/typecheck/TcInstDcls.lhs | 4 +-
compiler/typecheck/TcInteract.lhs | 367 ++++++++++-----------
compiler/typecheck/TcMType.lhs | 29 +-
compiler/typecheck/TcRnTypes.lhs | 173 +++++------
compiler/typecheck/TcSMonad.lhs | 622 ++++++++++++++++++++---------------
compiler/typecheck/TcSimplify.lhs | 50 ++--
compiler/typecheck/TcUnify.lhs | 4 +-
compiler/types/Coercion.lhs | 14 +-
compiler/types/Type.lhs | 15 +-
16 files changed, 954 insertions(+), 856 deletions(-)
Diff suppressed because of size. To see it, use:
git show dd7522c3b14bce1af94bffd61c4d38e670f53495