Note [Cast swizzling on rule LHSs]
In the LHS of a RULE we may have
(\x. blah |> CoVar cv)
where `cv` is a coercion variable. Critically, we really only want
coercion /variables/, not general coercions, on the LHS of a RULE. So
we don't want to swizzle this to
(\x. blah) |> (Refl xty `FunCo` CoVar cv)
So we switch off cast swizzling in updModeForRules. References 0
This Note does not link to any other.
Referenced by 3
- GHC.Core.Opt.Simplify.Utils call site
- Casts and lambdas GHC.Core.Opt.Simplify.Utils
- Casts in the template GHC.Core.Rules