monad-journal-0.4: Pure logger typeclass and monad transformer

Copyright(c) Dimitri Sabadie
LicenseGPL-3
Maintainerdimitri.sabadie@gmail.com
Stabilitystable
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell2010

Control.Monad.Journal.Class

Contents

Description

 

Synopsis

MonadJournal

class (Monoid w, Monad m) => MonadJournal w m | m -> w where Source

Methods

journal :: w -> m () Source

Log something.

history :: m w Source

Extract the logs history.

clear :: m () Source

Clear the logs history.

Instances

(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (MaybeT m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (ListT m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (IdentityT m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (EitherT e m) 
(Monad m, Monoid w, Monoid q, MonadJournal w m) => MonadJournal w (WriterT q m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (StateT s m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (ReaderT r m) 
(Monoid w, Monad m) => MonadJournal w (JournalT w m) 
(Monad m, Monoid w, MonadJournal w m) => MonadJournal w (RWST r w s m) 

sink :: (MonadJournal w m, MonadIO m) => (w -> IO ()) -> m () Source

Sink all logs history through MonadIO then clean it.

absorb :: MonadJournal w m => (a, w) -> m a Source

Absorb a logs history and pass around the value.