[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