Author: Simon Peyton Jones <[email protected]>
Date: Mon May 14 14:05:48 2012 +0100
Fix the the pure unifier so that it unifies kinds
When unifying two type variables we must unify their kinds.
The pure *matcher* was doing so, but the pure *unifier* was not.
This patch fixes Trac #6015, where an instance lookup was failing
when it should have succeeded.
I removed a bunch of code aimed at support sub-kinding. It's
tricky, ad-hoc, and I don't think its necessary any more.
Anything we can do to simplify the sub-kinding story is welcome!
compiler/types/FunDeps.lhs | 4 +++
compiler/types/Unify.lhs | 50 +++++++++++++++----------------------------
2 files changed, 22 insertions(+), 32 deletions(-)

Whoa! atnnn, you are right on the ball. I'd found this exact same problem when looking at #6068, but it's a subtle one. So hats off you to you for finding the exact spot where the bug is. (Took me a little while.)

Feel free to keep debugging type inference! You clearly know what you are doing. I wonder who you really are?