[Haskell-cafe] ANNOUNCE: error-message

Gregory Crosswhite gcross at phys.washington.edu
Fri Dec 4 12:06:18 EST 2009

On Dec 4, 2009, at 7:55 AM, Henning Thielemann wrote:

> Gregory Crosswhite schrieb:
>> If there is one thing that we really don't have enough of in Haskell, it is *ways to handle errors*!  Thus, I am pleased to announce the release of the "error-message" package to help in filling this, erm, gap.
>> This philosophy behind this package is that it is often better to find out all of the errors that have occured in a computation and report them simultaneously, rather than aborting as soon as the first error is encountered.  Towards this end, this package supplies a type of /combinable error messages/ (ErrorMessage in the Data.ErrorMessage module) so that all of the errors from subcomputations can be gathered and presented together.
> I would call such non-serious errors 'warnings'. Warnings can be
> collected using Writer monad.

The errors are indeed serious because they prevent the computation from being finished;  it's just that errors are often not "fatal" in the sense that you have to stop when you encounter the first one rather than seeing if anything else also went wrong.  For example, consider compilation errors:  any error causes the compilation to fail, but the compiler tries to uncover as many errors as it can at once so that it can show you the whole list rather than just the first one.

On Dec 4, 2009, at 7:57 AM, Henning Thielemann wrote:

> Gregory Crosswhite schrieb:
>> When I uploaded my new package, "error-message", I also went ahead and created a new category:  "Error Handling".
> "Error handling" is the same as "debugging" for you? I hope it is not
> intended for generating further confusion about "exception handling" and
> "debugging" (= help programmers to analyse errors).

No, but I can see how you would have gotten that impression since the examples I supply in my documentation are all programmer errors.  The real purpose of this is to collect together errors that ultimately came from bad program inputs, i.e. "user errors".  In particular, the motivation for this package was that I have written a build system, and I wanted to collect as many errors in the build as possible and show them all to the user at once.


More information about the Haskell-Cafe mailing list