Note [Coercion arguments]
What if we have (f (Coercion co)) in the template, where the 'co' is a coercion argument to f? Right now we have nothing in place to ensure that a coercion /argument/ in the template is a variable. We really should, perhaps by abstracting over that variable. C.f. the treatment of dictionaries in GHC.HsToCore.Binds.decompseRuleLhs. For now, though, we simply behave badly, by failing in match_co. We really should never rely on matching the structure of a coercion (which is just a proof).
References 0
This Note does not link to any other.
Referenced by 2
- Casts in the template GHC.Core.Rules
- GHC.Core.Rules call site