-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A monad transformer for tracing provenience of errors -- @package trace @version 0.2.0.0 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] -- | 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 Typeable ErrorTrace instance Generic (ErrorTrace t e) instance Datatype D1ErrorTrace instance Constructor C1_0ErrorTrace instance Selector S1_0_0ErrorTrace instance Selector S1_0_1ErrorTrace instance (Show t, Show e) => Show (ErrorTrace t e) instance Monoid e => Monoid (ErrorTrace t e) instance (NFData t, NFData e) => NFData (ErrorTrace t e) module Control.Monad.Trace.Class -- | A class for monads that have a scoped tracing effect class Monad m => MonadTrace t m | m -> t traceScope :: MonadTrace t m => t -> m α -> m α readTrace :: MonadTrace t m => m (Seq t) instance MonadTrace t m => MonadTrace t (MaybeT m) instance MonadTrace t m => MonadTrace t (ListT m) instance MonadTrace t m => MonadTrace t (ContT r m) instance MonadTrace t m => MonadTrace t (IdentityT m) instance MonadTrace t m => MonadTrace t (ExceptT e m) instance (Monoid w, MonadTrace t m) => MonadTrace t (RWST r w s m) instance (Monoid w, MonadTrace t m) => MonadTrace t (RWST r w s m) instance MonadTrace t m => MonadTrace t (StateT w m) instance MonadTrace t m => MonadTrace t (StateT w m) instance (Monoid w, MonadTrace t m) => MonadTrace t (WriterT w m) instance (Monoid w, MonadTrace t m) => MonadTrace t (WriterT w m) instance MonadTrace t m => MonadTrace t (ReaderT r m) 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 MonadRWS r w s m => MonadRWS r w s (TraceT t e m) instance (Monad m, Functor m) => Applicative (TraceT t e m) instance (Monad m, Functor m, Monoid e) => Alternative (TraceT t e m) instance Functor m => Functor (TraceT t e m) instance Monad m => Monad (TraceT t e m) instance (Monad m, Monoid e) => MonadPlus (TraceT t e m) instance MonadIO m => MonadIO (TraceT t e m) instance MonadCont m => MonadCont (TraceT t e m) instance MonadFix m => MonadFix (TraceT t e m) instance MonadState s m => MonadState s (TraceT t e m) instance MonadBase b m => MonadBase b (TraceT t e m) instance MonadWriter w m => MonadWriter w (TraceT t e m) instance MonadBaseControl b m => MonadBaseControl b (TraceT t e m) instance MonadTransControl (TraceT t e) instance Monad m => MonadTrace t (TraceT t e m) instance MonadTrans (TraceT t e) instance Monad m => MonadError e (TraceT t e m) instance MonadReader r m => MonadReader r (TraceT t e m) module Control.Monad.Trace