PmCheck: Pick up `EvVar`s bound in `HsWrapper`s for long-distance info
HsWrapper
s introduce evidence bindings through WpEvLam
which the pattern-match coverage checker should be made aware of.
Failing to do so caused #18049 (closed), where the resulting impreciseness of
imcompleteness warnings seemingly contradicted with
-Winaccessible-code
.
The solution is simple: Collect all the evidence binders of an
HsWrapper
and add it to the ambient Deltas
before desugaring
the wrapped expression.
But that means we pick up many more evidence bindings, even when they
wrap around code without a single pattern match to check! That regressed
T3064
by over 300%, so now we are adding long-distance info lazily
through judicious use of unsafeInterleaveIO
.
Fixes #18049 (closed).