<div dir="ltr"><div dir="ltr"><div class="gmail_default" style="font-size:small"><br></div><div class="gmail_default" style="font-size:small"><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Jul 21, 2023 at 5:14 PM Todd Wilson <<a href="mailto:twilson@csufresno.edu">twilson@csufresno.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Fri, Jul 21, 2023 at 3:27 PM Jeff Clites via Haskell-Cafe <<a href="mailto:haskell-cafe@haskell.org" target="_blank">haskell-cafe@haskell.org</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Oh no I take that back, it is talking about a specific pattern:<br>
<br>
>>    Pattern match is redundant<br>
>>    In a case alternative: B -> ...<br>
<br>
But I do think a better complaint is that you don't need a case expression there at all, but it seems like that's not actually what it's complaining about. Hmm.<br></blockquote><div><br></div><div>My take-away from all this is that, if a case branch can be determined *statically* (i.e., without applying any evaluation steps) not to match, then it is "redundant." If there are counterexamples to this take-away, though, please let me know!</div><div><br></div><div>--Todd</div></div></div><br></blockquote><div><span class="gmail_default" style="font-size:small">At the risk of descending into bikeshedding, I think "redundant" applies to anything that can be safely removed, and it is widely used in the ghc error messages.  Using different words like "unreachable"  and "unnecessary" is distracting and doesn't confer any benefit that I can see.</span></div></div></div>