-----------------------------------------------------------------------------
-- | Module     :  Control.Monad.Trans.Chronicle
--
-- The 'ChronicleT' monad, a hybrid error/writer monad that allows
-- both accumulating outputs and aborting computation with a final
-- output.
-----------------------------------------------------------------------------
module Control.Monad.Chronicle (
                               -- * Type class for Chronicle-style monads
                                 MonadChronicle(..)
                               -- * The ChronicleT monad transformer
                               , Chronicle, runChronicle, ChronicleT(..)
                               , module Data.Monoid
                               , module Control.Monad
                               , module Control.Monad.Trans
                               ) where

import Data.Monoid (Monoid(..))

import Control.Monad
import Control.Monad.Trans
import Control.Monad.Trans.Chronicle (Chronicle)
import Control.Monad.Chronicle.Class