Skip to content
  • Simon Peyton Jones's avatar
    Fix a subtle bug in kind-mis-matched equalities (Trac #6068) · dff0e99d
    Simon Peyton Jones authored
    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.
    dff0e99d