extensible-effects-concurrent-0.32.0: Message passing concurrency as extensible-effect

Safe HaskellNone
LanguageHaskell2010

Control.Eff.ExceptionExtra

Contents

Description

Add-ons to Exception and Exception

Synopsis

Documentation

liftTry :: forall e r a. (HasCallStack, Exception e, Lifted IO r) => Eff r a -> Eff r (Either e a) Source #

Catch Exception thrown by an effect.

maybeThrow :: Member (Exc x) e => x -> Maybe a -> Eff e a Source #

Very similar to liftEither but for Maybes. Unlike liftMaybe this will throw the given value (instead of using Fail).

Orphan instances

MonadThrow (Eff e) => MonadThrow (Eff ((Exc x :: Type -> Type) ': e)) Source # 
Instance details

Methods

throwM :: Exception e0 => e0 -> Eff (Exc x ': e) a #

MonadThrow (Eff e) => MonadThrow (Eff (Reader x ': e)) Source # 
Instance details

Methods

throwM :: Exception e0 => e0 -> Eff (Reader x ': e) a #

MonadThrow (Eff e) => MonadThrow (Eff (Reader x ': e)) Source # 
Instance details

Methods

throwM :: Exception e0 => e0 -> Eff (Reader x ': e) a #

MonadThrow m => MonadThrow (Eff (Lift m ': ([] :: [Type -> Type]))) Source # 
Instance details

Methods

throwM :: Exception e => e -> Eff (Lift m ': []) a #

MonadCatch (Eff e) => MonadCatch (Eff ((Exc x :: Type -> Type) ': e)) Source # 
Instance details

Methods

catch :: Exception e0 => Eff (Exc x ': e) a -> (e0 -> Eff (Exc x ': e) a) -> Eff (Exc x ': e) a #

MonadCatch (Eff e) => MonadCatch (Eff (Reader x ': e)) Source # 
Instance details

Methods

catch :: Exception e0 => Eff (Reader x ': e) a -> (e0 -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) a #

MonadCatch (Eff e) => MonadCatch (Eff (Reader x ': e)) Source # 
Instance details

Methods

catch :: Exception e0 => Eff (Reader x ': e) a -> (e0 -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) a #

MonadCatch m => MonadCatch (Eff (Lift m ': ([] :: [Type -> Type]))) Source # 
Instance details

Methods

catch :: Exception e => Eff (Lift m ': []) a -> (e -> Eff (Lift m ': []) a) -> Eff (Lift m ': []) a #

MonadMask (Eff e) => MonadMask (Eff ((Exc x :: Type -> Type) ': e)) Source # 
Instance details

Methods

mask :: ((forall a. Eff (Exc x ': e) a -> Eff (Exc x ': e) a) -> Eff (Exc x ': e) b) -> Eff (Exc x ': e) b #

uninterruptibleMask :: ((forall a. Eff (Exc x ': e) a -> Eff (Exc x ': e) a) -> Eff (Exc x ': e) b) -> Eff (Exc x ': e) b #

generalBracket :: Eff (Exc x ': e) a -> (a -> ExitCase b -> Eff (Exc x ': e) c) -> (a -> Eff (Exc x ': e) b) -> Eff (Exc x ': e) (b, c) #

MonadMask (Eff e) => MonadMask (Eff (Reader x ': e)) Source # 
Instance details

Methods

mask :: ((forall a. Eff (Reader x ': e) a -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) b #

uninterruptibleMask :: ((forall a. Eff (Reader x ': e) a -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) b #

generalBracket :: Eff (Reader x ': e) a -> (a -> ExitCase b -> Eff (Reader x ': e) c) -> (a -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) (b, c) #

MonadMask (Eff e) => MonadMask (Eff (Reader x ': e)) Source # 
Instance details

Methods

mask :: ((forall a. Eff (Reader x ': e) a -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) b #

uninterruptibleMask :: ((forall a. Eff (Reader x ': e) a -> Eff (Reader x ': e) a) -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) b #

generalBracket :: Eff (Reader x ': e) a -> (a -> ExitCase b -> Eff (Reader x ': e) c) -> (a -> Eff (Reader x ': e) b) -> Eff (Reader x ': e) (b, c) #

MonadMask m => MonadMask (Eff (Lift m ': ([] :: [Type -> Type]))) Source # 
Instance details

Methods

mask :: ((forall a. Eff (Lift m ': []) a -> Eff (Lift m ': []) a) -> Eff (Lift m ': []) b) -> Eff (Lift m ': []) b #

uninterruptibleMask :: ((forall a. Eff (Lift m ': []) a -> Eff (Lift m ': []) a) -> Eff (Lift m ': []) b) -> Eff (Lift m ': []) b #

generalBracket :: Eff (Lift m ': []) a -> (a -> ExitCase b -> Eff (Lift m ': []) c) -> (a -> Eff (Lift m ': []) b) -> Eff (Lift m ': []) (b, c) #