[commit: ghc] master: Re-do superclass solving (again); fixes #10423 (1189196)

git at git.haskell.org git at git.haskell.org
Tue Jun 2 09:34:20 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/1189196ce7f064af408c9d16874a4c0b78f3a006/ghc

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

commit 1189196ce7f064af408c9d16874a4c0b78f3a006
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date:   Tue Jun 2 00:33:14 2015 +0100

    Re-do superclass solving (again); fixes #10423
    
    TcInstDcls.tcSuperClasses was getting increasingly baroque as a
    succession of tickets (#10423 being the latest) pointed out that
    my cunning plan was not so cunning.
    
    The big issue is how to restrict the evidence that we generate
    for superclass constraints in an instance declaration to avoid
    superclass loops.  See Note [Recursive superclasses] in TcInstDcls
    which explains the plan.
    
    The question is how to implement the plan.  The new implementation is
    much neater, and is described in Note [Solving superclass constraints]
    in TcInstDcls.


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

1189196ce7f064af408c9d16874a4c0b78f3a006
 compiler/typecheck/TcCanonical.hs |  12 ++-
 compiler/typecheck/TcInstDcls.hs  | 156 ++++++++++----------------------------
 compiler/typecheck/TcInteract.hs  | 117 ++++++++++++++++++++--------
 compiler/typecheck/TcRnTypes.hs   |  15 +++-
 compiler/typecheck/TcSimplify.hs  |   4 +-
 compiler/typecheck/TcType.hs      |  81 +++++++++++++++++++-
 compiler/typecheck/TcValidity.hs  |  79 +------------------
 7 files changed, 233 insertions(+), 231 deletions(-)

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

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 1189196ce7f064af408c9d16874a4c0b78f3a006


More information about the ghc-commits mailing list