
Sterling Clover wrote:
...as we've got a built-in standard for handling precisely the sorts of IO errors that are returned, it seems silly not to use it.
IO exceptions wreak havoc on programs using any instance of MonadIO other than IO itself. At best, you need a major reorganization of your entire program. At worst, it can make it completely impossible to write a library. The built-in standard that you are referring to is fine for when something happens that makes it impossible for the program to continue - out of memory, hard disk failure, etc. But in cases where it is possible to return a meaningful value and continue, why be so disruptive? As Robert Dockins pointed out, it is very easy for those who prefer an IO exception to throw one themselves. The opposite can be difficult or impossible. Thanks, Yitz