Proposal: Deprecate and remove Prelude.catch and System.IO.Error.{catch,try}

Henning Thielemann lemming at
Mon Dec 27 14:37:58 CET 2010

On Mon, 27 Dec 2010, Ian Lynagh wrote:

> Hi all,
>    Deprecate and remove Prelude.catch and System.IO.Error.{catch,try}
> 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.

More information about the Libraries mailing list