[Haskell-cafe] if-then without -else?
Neil Mayhew
neil_mayhew at users.sourceforge.net
Mon Jul 9 21:22:08 UTC 2018
On 2018-07-09 12:54 PM, Olga Ershova wrote:
> In hindsight, maybe non-exhaustive case expression should be errors,
> not warnings. But then adding new constructor to the type could break
> existing code in multiple places, even if constructor is never used.
> Not everybody ready to pay this price.
You make a good point, and this is the best explanation I've seen in
this discussion. However, even if the constructor is never used in your
own code, it may well be used in library code that you call. I think
it's dangerous for for the programmer not to know when a new constructor
is added. I prefer to have this warning enabled, and my policy is to use
-Wall -Werror from the start of any new project. I then turn off
specific warnings (eg orphans) with a pragma in individual source files
when I really need to use something.
I was interested to see that GHC allows you to turn any warning into an
error, so I assume Haskell could be made total for pattern matching with:
-Werror=incomplete-patterns
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180709/028a20a2/attachment.html>
More information about the Haskell-Cafe
mailing list