[Haskell-cafe] Ensuring all values of an ADT are explicitly handled OR finding all occurrences of type X in my app

Eric Seidel eric at seidel.io
Tue Jan 31 15:52:18 UTC 2017


I think the best solution here would be a new warning, say -fwarn-wildcard-patterns. This would be a simple syntactic check for a wildcard pattern anywhere in the module. Combined with -Werror you would be prevented from compiling programs with wildcards.

I think this would be quite valuable given the rest of the comments in the thread, and probably a simple addition to GHC.

Eric


> On Jan 30, 2017, at 20:59, Saurabh Nanda <saurabhnanda at gmail.com> wrote:
> 
> I would want the compiler (or linter) to help me here. Think if a mid-to-large team where everyone may not know (or remember) what the current best practices are. 
> 
> On 31 Jan 2017 9:51 am, "Michael Orlitzky" <michael at orlitzky.com> wrote:
> On 01/30/2017 09:47 PM, Saurabh Nanda wrote:
> > Hi,
> >
> > If I have the following ADT
> >
> > data BookingState = Confirmed | Cancelled
> >
> > which had a very high chance of being expanded in the future to have more
> > values. How do I ensure that every pattern match on BookingState matches
> > each value explicitly. Basically prevent the '_' matcher ?
> >
> 
> Don't write the "_" case? GHC will warn you about any pattern matches
> you've missed.
> 
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.



More information about the Haskell-Cafe mailing list