[Haskell-cafe] Guards (Was: Some random newbie questions)

Henning Thielemann iakd0 at clusterf.urz.uni-halle.de
Fri Jan 7 05:28:18 EST 2005

On Fri, 7 Jan 2005, Simon Peyton-Jones wrote:

> | * As far as I can determine, there is no way to check pattern matches
> for
> |   exhaustiveness.  Coming from OCaml, this feels like losing a
> significant
> |   safety net!  How do people program so as not to be getting dynamic
> match
> |   failures all the time?
> GHC has -fwarn-incomplete-patterns and -fwarn-overlapped-patterns.  But
> the code implementing these checks is old and crufty, and the warnings
> are sometimes a bit wrong -- at least when guards and numeric literals
> are involved.  I think they are accurate when you are just using
> "ordinary" pattern matching.
> Cleaning up this bit of GHC is a long-standing to-do item, if anyone
> feels motivated to undertake it.  It's a well-defined task, with plenty
> of well-written papers explaining how to do it -- but it's tricker than
> it seems at first!

What about dropping Guards? :-) Are they necessary? Do they lead to more
readable source code? Do they lead to more efficient code? I could
perfectly live without them up to now.

More information about the Haskell-Cafe mailing list