
On Mar 8, 2008, at 12:33 PM, Henning Thielemann wrote:
On Sat, 8 Mar 2008, Denis Bueno wrote: ...
I am also using STUArray from some time-critical code; however, I don't deal with ArrayException, or any exceptions for that matter. What besides an out-of-bounds read or write might throw an ArrayException? If it is out-of-bounds reading or writing, surely that indicates a bug in your program that you'd rather fix than catch the exception, no?
Another instance of mixing up exceptions and errors in the Haskell libraries. http://www.haskell.org/haskellwiki/Error http://www.haskell.org/haskellwiki/Exception
This seems to me one of the disappointments of Haskell - not just a detail that was handled in an awkward way, but a fundamental flaw. I'm not talking about ArrayException, whatever that is, but the notion that errors encountered in functional code mustn't be handled as exceptions. If your input file is not where you expected it and openFile fails, or it was incompletely written out and your input processing fails in a 'head' or pattern match, the difference is not very important to me. I want to be able to call your code and manage the risk that it's going to kill my server. You may feel that it's your job to write more robust functional code that can't run into these errors, but C programmers can be found who insist that it's the programmer's job to manage heap memory and it isn't all that hard. A programming language that fails to make it easier to write more robust code, is not moving us forward. I rejoice that Haskell isn't as miserable as C, but with respect to exceptions and errors, it's behind for example Python. Languages that can, use exceptions like IndexError. Evidently, Haskell fundamentally can't. That's too bad. Donn Cave, donn@avvanta.com