Fix a subtle bug in kind-mis-matched equalities (Trac #6068)
When we have an equality constraint where the LHS and RHS have ill-matched kinds, it get turned into a CIrredEvCan because a CTyEqCan/CFunEqCan are guaranteed kind-compatible. But that in turn led to a bug because in the constraint c = (a:k1) ~ (b:k2) the kind variables k1 and k2 don't show up in tyVarsOfType c. Why not? Because it looks like (~) k1 (a:k1) (b:k2) Maybe (~) should have two kind arguments? That seemed like too big a change for not (we wait for NoKinds), so this patch fixes the bug for now.
Showing with 56 additions and 27 deletions