
On Mon, 27 Dec 2010, Ian Lynagh wrote:
Hi all,
Deprecate and remove Prelude.catch and System.IO.Error.{catch,try} http://hackage.haskell.org/trac/ghc/ticket/4865
Prelude and System.IO.Error both export an old version of catch, which only catches IOError's, and System.IO.Error additionally exports try with the same problem.
This would mean, that Control.Exception.catch remains, that catches also the non-exception "undefined". (I don't like to start a new thread about what to name exception and what error and what names are more appropriate, but I think that many people agree, that there is a fundamental difference between 'throw' and 'error'.) Ok, changing Control.Exception.catch should be a different ticket. After all I think that current exception handling in Control.Exception is only a temporary solution until we have a stable system with explicit exception lists encoded in types. Thus removing one broken temporary solution (Prelude.catch) in order to force people to use the other broken temporary solution (Control.Exception.catch) sounds not good for me.