-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A monad transformer for tracing provenience of errors -- @package trace @version 0.1.0.2 module Control.Monad.Trace.ErrorTrace -- | A datatype containing an error and its provenience(s). data ErrorTrace t e ErrorTrace :: !e -> ![Seq t] -> ErrorTrace t e -- | The error _etError :: ErrorTrace t e -> !e -- | The list of traces (for each path tried) _etTrace :: ErrorTrace t e -> ![Seq t] -- | An isomorphism ErrorTrace t e ≅ (e, Seq t). _ErrorTrace :: (Choice p, Functor f) => p (ErrorTrace t e) (f (ErrorTrace t' e')) -> p (e, [Seq t]) (f (e', [Seq t'])) -- | A lens ErrorTrace t e → e. etError :: Functor f => (e -> f e') -> ErrorTrace t e -> f (ErrorTrace t e') -- | A lens ErrorTrace t e → Seq t. etTrace :: Functor f => ([Seq t] -> f [Seq t']) -> ErrorTrace t e -> f (ErrorTrace t' e) instance (Show t, Show e) => Show (ErrorTrace t e) instance Monoid e => Monoid (ErrorTrace t e) module Control.Monad.Trace.Class -- | A class for monads that have a scoped tracing effect class MonadTrace t m | m -> t traceScope :: MonadTrace t m => t -> m α -> m α readTrace :: MonadTrace t m => m (Seq t) module Control.Monad.Trans.Trace -- | A concrete monad transformer TraceT t e m where -- t is the type of tags/breadcrumbs, e is the type of -- errors, and m is the underlying monad. data TraceT t e m α -- | Run a traced traced computation to get either its result, or an error -- and its provenience (ErrorTrace). runTraceT :: (Functor m, Monad m) => TraceT t e m α -> m (Either (ErrorTrace t e) α) instance Monad m => Functor (TraceT t e m) instance Monad m => Monad (TraceT t e m) instance Monad m => Applicative (TraceT t e m) instance (Monad m, Monoid e) => Alternative (TraceT t e m) instance MonadIO m => MonadIO (TraceT t e m) instance MonadBase b m => MonadBase b (TraceT t e m) instance Show Welp instance MonadBaseControl b m => MonadBaseControl b (TraceT t e m) instance MonadTransControl (TraceT t e) instance Monoid Welp instance Monad m => MonadTrace t (TraceT t e m) instance MonadTrans (TraceT t e) instance Monad m => MonadError e (TraceT t e m) module Control.Monad.Trace.Codensity -- | Add a trace in synchronous style putTrace :: (Monad m, MonadTrace t m) => t -> Codensity m () module Control.Monad.Trace