error-context-0.2.0.0: Provides API for enriching errors with contexts

Copyright(c) Moritz Clasmeier 2018
LicenseBSD3
Maintainermtesseract@silverratio.net
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Control.Error.Context

Description

Provides an API for enriching errors with contexts.

Synopsis

Documentation

data ErrorContextT m a Source #

Data type implementing MonadErrorContext.

Instances

MonadTrans ErrorContextT Source # 

Methods

lift :: Monad m => m a -> ErrorContextT m a #

MonadWriter w m => MonadWriter w (ErrorContextT m) Source # 

Methods

writer :: (a, w) -> ErrorContextT m a #

tell :: w -> ErrorContextT m () #

listen :: ErrorContextT m a -> ErrorContextT m (a, w) #

pass :: ErrorContextT m (a, w -> w) -> ErrorContextT m a #

MonadState s m => MonadState s (ErrorContextT m) Source # 

Methods

get :: ErrorContextT m s #

put :: s -> ErrorContextT m () #

state :: (s -> (a, s)) -> ErrorContextT m a #

MonadReader r m => MonadReader r (ErrorContextT m) Source # 

Methods

ask :: ErrorContextT m r #

local :: (r -> r) -> ErrorContextT m a -> ErrorContextT m a #

reader :: (r -> a) -> ErrorContextT m a #

Monad m => Monad (ErrorContextT m) Source # 

Methods

(>>=) :: ErrorContextT m a -> (a -> ErrorContextT m b) -> ErrorContextT m b #

(>>) :: ErrorContextT m a -> ErrorContextT m b -> ErrorContextT m b #

return :: a -> ErrorContextT m a #

fail :: String -> ErrorContextT m a #

Functor m => Functor (ErrorContextT m) Source # 

Methods

fmap :: (a -> b) -> ErrorContextT m a -> ErrorContextT m b #

(<$) :: a -> ErrorContextT m b -> ErrorContextT m a #

Applicative m => Applicative (ErrorContextT m) Source # 

Methods

pure :: a -> ErrorContextT m a #

(<*>) :: ErrorContextT m (a -> b) -> ErrorContextT m a -> ErrorContextT m b #

liftA2 :: (a -> b -> c) -> ErrorContextT m a -> ErrorContextT m b -> ErrorContextT m c #

(*>) :: ErrorContextT m a -> ErrorContextT m b -> ErrorContextT m b #

(<*) :: ErrorContextT m a -> ErrorContextT m b -> ErrorContextT m a #

(MonadCatch m, MonadIO m) => MonadIO (ErrorContextT m) Source # 

Methods

liftIO :: IO a -> ErrorContextT m a #

(MonadCatch m, MonadResource m) => MonadResource (ErrorContextT m) Source # 
MonadCatch m => MonadThrow (ErrorContextT m) Source # 

Methods

throwM :: Exception e => e -> ErrorContextT m a #

MonadCatch m => MonadCatch (ErrorContextT m) Source # 

Methods

catch :: Exception e => ErrorContextT m a -> (e -> ErrorContextT m a) -> ErrorContextT m a #

MonadCatch m => MonadErrorContext (ErrorContextT m) Source # 

newtype ErrorContextKatipT m a Source #

Data type implementing MonadErrorContext.

Constructors

ErrorContextKatipT 

Fields

Instances

MonadTrans ErrorContextKatipT Source # 

Methods

lift :: Monad m => m a -> ErrorContextKatipT m a #

MonadWriter w m => MonadWriter w (ErrorContextKatipT m) Source # 

Methods

writer :: (a, w) -> ErrorContextKatipT m a #

tell :: w -> ErrorContextKatipT m () #

listen :: ErrorContextKatipT m a -> ErrorContextKatipT m (a, w) #

pass :: ErrorContextKatipT m (a, w -> w) -> ErrorContextKatipT m a #

MonadState s m => MonadState s (ErrorContextKatipT m) Source # 

Methods

get :: ErrorContextKatipT m s #

put :: s -> ErrorContextKatipT m () #

state :: (s -> (a, s)) -> ErrorContextKatipT m a #

MonadReader r m => MonadReader r (ErrorContextKatipT m) Source # 

Methods

ask :: ErrorContextKatipT m r #

local :: (r -> r) -> ErrorContextKatipT m a -> ErrorContextKatipT m a #

reader :: (r -> a) -> ErrorContextKatipT m a #

Monad m => Monad (ErrorContextKatipT m) Source # 
Functor m => Functor (ErrorContextKatipT m) Source # 

Methods

fmap :: (a -> b) -> ErrorContextKatipT m a -> ErrorContextKatipT m b #

(<$) :: a -> ErrorContextKatipT m b -> ErrorContextKatipT m a #

Applicative m => Applicative (ErrorContextKatipT m) Source # 
(KatipContext m, MonadCatch m, MonadIO m) => MonadIO (ErrorContextKatipT m) Source # 

Methods

liftIO :: IO a -> ErrorContextKatipT m a #

(KatipContext m, MonadCatch m, MonadResource m) => MonadResource (ErrorContextKatipT m) Source # 
(KatipContext m, MonadCatch m) => MonadThrow (ErrorContextKatipT m) Source # 

Methods

throwM :: Exception e => e -> ErrorContextKatipT m a #

(KatipContext m, MonadCatch m) => MonadCatch (ErrorContextKatipT m) Source # 
(MonadCatch m, KatipContext m) => KatipContext (ErrorContextKatipT m) Source # 
(MonadCatch m, KatipContext m, MonadIO m, Katip m) => Katip (ErrorContextKatipT m) Source # 
(MonadCatch m, KatipContext m) => MonadErrorContext (ErrorContextKatipT m) Source # 

errorContextualize :: MonadErrorContext m => e -> m (ErrorWithContext e) Source #

Enrich an error value with an error context.

errorContextForget :: ErrorWithContext e -> e Source #

Forgets the context from an enriched error.

errorWithContextDump :: (Show e, MonadIO m) => ErrorWithContext e -> m () Source #

Dump an error with context to stdout.

catchWithoutContext :: forall a e m. (MonadCatch m, Exception e) => m a -> (e -> m a) -> m a Source #

Like catch, but the handler is required to be context-unaware. Is also able to catch exceptions with context, in which case the context will be forgotten before the exception will be provided to the handler.

catchWithContext :: (MonadCatch m, Exception e) => m a -> (ErrorWithContext e -> m a) -> m a Source #

Like catch, but the handler is required to be context-aware. Is also able to catch exceptions of type e (without context).

catchAnyWithContext :: MonadCatch m => m a -> (ErrorWithContext SomeException -> m a) -> m a Source #

Context aware version of catchAny.

catchAnyWithoutContext :: MonadCatch m => m a -> (SomeException -> m a) -> m a Source #

Context aware version of catchAny.

tryWithoutContext :: (MonadCatch m, Exception e) => m a -> m (Either e a) Source #