Pure logger typeclass and monad transformer

Version on this page:
LTS Haskell 21.25:0.8.1
Stackage Nightly 2023-06-21:0.8.1
Latest on Hackage:0.8.1

See all snapshots monad-journal appears in

BSD-3-Clause licensed and maintained by Dimitri Sabadie
This version can be pinned in stack with:monad-journal-,1992

Module documentation for

  • Control
    • Control.Monad
      • Control.Monad.Journal
        • Control.Monad.Journal.Class
      • Control.Monad.Trans
        • Control.Monad.Trans.Journal


Pure logger typeclass and monad transformer

What is monad-journal?

monad-journal is a simple but powerful answer to the logging problem. A lot of people think that “logging” is IO-related, while it’s not. Everyone must know MonadWriter , which is perfect to log things in pure computations. The issue is that you can’t access those “things” inside the computation itself. monad-journal exposes a cool typeclass called MonadJournal that enables you to do so.




  • license is now BSD3!;
  • enhanced the documentation in all modules;
  • added

  • added the changelog in the package description (.cabal).

  • added the source-repository head field in the .cabal file;
  • added the bug-reports field in the .cabal file;
  • change author and maintainer format.


  • actually, lower bound is better for now; using mtl-2.1.


  • now using lower-bound mtl’s version for Control.Monad.Except.


  • added MonadExcept instances.