-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Monad-transformer version of the Control.Exception module
--   
--   Provides a monad-transformer version of the
--   <tt>Control.Exception.catch</tt> function. For this, it defines the
--   <tt>MonadCatchIO</tt> class, a subset of <tt>MonadIO</tt>. It defines
--   proper instances for most monad transformers in the <a>mtl</a>
--   library.
@package MonadCatchIO-mtl
@version 0.3.1.0

module Control.Monad.CatchIO
class MonadIO m => MonadCatchIO (m :: Type -> Type)
catch :: (MonadCatchIO m, Exception e) => m a -> (e -> m a) -> m a
block :: MonadCatchIO m => m a -> m a
unblock :: MonadCatchIO m => m a -> m a
class (Typeable e, Show e) => Exception e
toException :: Exception e => e -> SomeException
fromException :: Exception e => SomeException -> Maybe e
displayException :: Exception e => e -> String
throw :: (MonadIO m, Exception e) => e -> m a
try :: (MonadCatchIO m, Functor m, Exception e) => m a -> m (Either e a)
tryJust :: (MonadCatchIO m, Functor m, Exception e) => (e -> Maybe b) -> m a -> m (Either b a)
onException :: MonadCatchIO m => m a -> m b -> m a
bracket :: MonadCatchIO m => m a -> (a -> m b) -> (a -> m c) -> m c
bracket_ :: MonadCatchIO m => m a -> m b -> m c -> m c
finally :: MonadCatchIO m => m a -> m b -> m a
bracketOnError :: MonadCatchIO m => m a -> (a -> m b) -> (a -> m c) -> m c
data () => Handler (m :: Type -> Type) a
Handler :: (e -> m a) -> Handler (m :: Type -> Type) a
catches :: MonadCatchIO m => m a -> [Handler m a] -> m a
