catch :: Exception e => m a -> (e -> m a) -> m a
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 function Control.Exception.Lifted.catch:Control.Exception.Lifted.catch :: (MonadBaseControl IO m, Exception e)=> m a -> (e -> m a) -> m aI'd recommend you use that instead of MonadCatchIO.On Mon, Jul 22, 2013 at 4:13 AM, Eric Rasmussen <ericrasmussen@gmail.com> wrote:
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?Arie,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
Thanks,
EricOn Sun, Jul 21, 2013 at 7:00 AM, Arie Peterson <ariep@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 something> […]
> 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.
Regards,
Arie
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe