monadology-0.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Ology.Data.Exn

Synopsis

Documentation

data Exn m e Source #

Exceptions that can be thrown and caught in this monad.

Constructors

MkExn 

Fields

  • exnThrow :: forall a. e -> m a
     
  • exnCatch :: forall a. m a -> (e -> m a) -> m a
     

Instances

Instances details
Invariant (Exn m) Source # 
Instance details

Defined in Control.Monad.Ology.Data.Exn

Methods

invmap :: (a -> b) -> (b -> a) -> Exn m a -> Exn m b #

Summable (Exn m) Source # 
Instance details

Defined in Control.Monad.Ology.Data.Exn

Methods

rVoid :: Exn m Void #

(<+++>) :: Exn m a -> Exn m b -> Exn m (Either a b) #

exnTry :: Monad m => Exn m e -> m a -> m (Result e a) Source #

exnHandle :: Exn m e -> (e -> m a) -> m a -> m a Source #

exnOnException :: forall e m a. Monad m => Exn m e -> m a -> m () -> m a Source #

exnBracket :: forall e m a b. MonadTunnelIO m => Exn m e -> m a -> (a -> m ()) -> (a -> m b) -> m b Source #

exnFinally :: forall e m a. MonadTunnelIO m => Exn m e -> m a -> m () -> m a Source #

exnBracket_ :: forall e m. MonadTunnelIO m => Exn m e -> m () -> m () -> m --> m Source #

mapExn :: (e2 -> e1) -> (e1 -> Maybe e2) -> Exn m e1 -> Exn m e2 Source #

liftExn :: forall t m. (MonadTransTunnel t, Monad m) => Exn m --> Exn (t m) Source #

allExn :: forall m. MonadException m => Exn m (Exc m) Source #

someExn :: forall e m. MonadCatch e m => Exn m e Source #