On Sat, 14 Jun 2008, Neil Mitchell wrote:

Hi

* error - inserted by the compiler

 Example?

Pattern-match errors.

Calling a function with patterns it cannot process is a programming error.

* abort - deliberate aborting because the user made some mistake.

 This is an exception. The signature of a function must reflect this by a
Maybe, Either type etc.

Disagree. I mean more like:

when (Delete `elem` flags && Keep `elem` flags) $
  abort "User cannot pick both keep and delete on the command line"

Think "die" in Perl world.

I wouldn't use such a function, because it does not scale. E.g. I cannot code a loop which lets the user enter flags until they match the conditions. Thus instead of 'abort' I would throw an exception - which is equivalent to the use of an exceptional value like Nothing or Left in Haskell (maybe wrapped in ErrorT).
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to