Note [Unifying coercion-foralls]
Suppose we try to unify (forall cv. t1) ~ (forall cv. t2). See Note [ForAllTy] in GHC.Core.TyCo.Rep. The problem with coercion variables is that coercion abstraction is not erased: the `kco` shouldn't propagate from outside the ForAllTy to inside. Instead, I think the correct new `kco` for the recursive call is `mkNomReflCo liftedTypeKind` (but I'm a little worried it might be Constraint sometimes). This potential problem has been there a long time, and I'm going to let sleeping dogs lie for now.
References 1
- ForAllTy GHC.Core.TyCo.Rep
Referenced by 1
- GHC.Core.Unify call site