[Haskell-cafe] catching IO errors in a monad transformer stack
jwlato at gmail.com
Mon Jul 22 03:30:17 CEST 2013
I think most people use monad-control these days for catching exceptions in
monad stacks (http://hackage.haskell.org/package/monad-control-0.3.2.1).
The very convenient lifted-base package (
http://hackage.haskell.org/package/lifted-base) depends on it and exports a
Control.Exception.Lifted.catch :: (MonadBaseControl IO m, Exception e)
=> m a -> (e -> m a) -> m a
I'd recommend you use that instead of MonadCatchIO.
On Mon, Jul 22, 2013 at 4:13 AM, Eric Rasmussen <ericrasmussen at gmail.com>wrote:
> Thanks for calling that out. The most useful part for my case is the
> MonadCatchIO implementation of catch:
> catch :: Exception e => m a -> (e -> m a) -> m a
> Hoogle shows a few similar functions for that type signature, but they
> won't work for the case of catching an IOException in an arbitrary monad.
> Do you happen to know of another approach for catching IOExceptions and
> throwing them in ErrorT?
> On Sun, Jul 21, 2013 at 7:00 AM, Arie Peterson <ariep at xs4all.nl> wrote:
>> On Thursday 18 July 2013 23:05:33 Eric Rasmussen wrote:
>> > […]
>> > Would there be any interest in cleaning that up and adding it (or
>> > similar) to Control.Monad.CatchIO?
>> > […]
>> MonadCatchIO-transformers is being deprecated, as recently GHC has
>> removed the
>> 'block' and 'unblock' functions, rendering the api provided by
>> Control.Monad.CatchIO obsolete.
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe