On Tue, 8 Dec 2009, Richard O'Keefe wrote:
X/0, sqrt(-1), head [] are errors
It depends on WHERE THE DATA CAME FROM.
If your program actually computes X/0 or sqrt(-1) or head [] your program
is buggy, independent from where the zero, the minus one or the empty list
comes.
Sure, the distinction exception/error depends on the source of the data
that causes problems.
And sadly, the library does not know this, so the library cannot classify
problems _that_ way.
To this end the library documentation says: "Precondition: This function
must only be called on non-empty lists." If the programmer calls it with
an empty list anyway, it's his fault. The library user made the error
then. Of course it would be better, if types or contracts could force such
restrictions:
http://www.haskell.org/pipermail/haskell-cafe/2009-November/068877.html
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe