Closed isovector closed 3 years ago
Digging in deeper, this is the evidence we've got: [EqualityOfTypes i 'Z,EqualityOfTypes tys (ty : ts),EqualityOfTypes tys (t : ts)]
which is absolutely right. So I think the issue is that we're not applying the substitution to the evidence.
Wingman should be able to fill in the hole with
t'
. GHC knows this:We can learn this by unifying
(t : ts1) ~ tys ~ (ty : ts)
thereforet ~ ty
andts1 ~ ts
. But that information never makes it to the Wingman unifier. Instead, our substition set looks like:The relevant bits here are the substitutions of
a1fDf :-> (':) @* ty ts
anda1fDf :-> (':) @* t ts
. But it's weird --- two separate substitutions for the same variable? Is this substitution not being persisted somehow?