Fix the the pure unifier so that it unifies kinds
authorSimon Peyton Jones <simonpj@microsoft.com>
Mon, 14 May 2012 13:05:48 +0000 (14:05 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Mon, 14 May 2012 13:05:48 +0000 (14:05 +0100)
commit6c3045b90fb28861fae826c8bbd53135d3f2a6ce
tree3823b72a6072979d831ff1dbcc5c047f9e07c8fe
parent09addd354e9828531c89929cba1eca8d290f4b23
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
compiler/types/Unify.lhs