<div dir="ltr">I think this is a similar 'failure to deduce' partiality as last week's thread; but the other way round (and with ViewPatterns) -- at GHC 8.10.7:<div><br></div><div>GHCi> :set -XViewPatterns</div><div>GHCi> :set -Wincomplete-patterns        -- also warns overlapping</div><div>GHCi> (\x -> case x of {((\(Just j) -> j) -> j2) -> j2;  Nothing -> 'N'}) Nothing<br></div><div><br></div><div>===> <interactive>: warning: [-Woverlapping-patterns]</div>    Pattern match is redundant<br>    In a case alternative: Nothing -> ...<br>*** Exception: <interactive>:16:21-34: Non-exhaustive patterns in lambda<div><br></div><div>(Same Warning then same Exception if I compile the code.)</div><div><br></div><div>So GHC isn't smart enough, despite the explicit `(\(Just j) -> ...)`, to see that ViewPattern usage is incomplete?</div><div><br></div><div>I thought ViewPatterns got desugarred into clunky chains of nested `case`s, so that the pattern coverage checker could see what's going on? I was testing this because if anything I expected it to report coverage was incomplete.</div><div><br></div><div>To get both a claim "Pattern match is redundant" and "Non-exhaustive" seems particularly unhelpful.</div><div><br></div><div>AntC</div></div>