replicant-0.1.0.0: src/Replicant/Base.hs
{-# LANGUAGE FlexibleContexts #-}
module Replicant.Base
( module Replicant.Base
) where
import Control.Applicative as Replicant.Base (optional, many)
import Control.Concurrent as Replicant.Base (ThreadId)
import Control.Monad as Replicant.Base (MonadPlus, forever, forM, forM_, join, liftM2, mzero, unless, void, when, (>=>))
import Control.Monad.Except as Replicant.Base (MonadError, throwError)
import Control.Monad.Logger as Replicant.Base (MonadLogger, logDebug, logError, logInfo, logWarn, toLogStr)
import Control.Monad.Reader as Replicant.Base (MonadReader, asks, ask)
import Control.Monad.IO.Class as Replicant.Base (MonadIO)
import Control.Monad.Trans as Replicant.Base (liftIO)
import Control.Monad.Trans.Either as Replicant.Base (EitherT, left, right)
import Control.Monad.Trans.Except as Replicant.Base (ExceptT)
import Control.Monad.Trans.Resource as Replicant.Base (MonadBaseControl)
import Data.Monoid as Replicant.Base ((<>))
import Data.Text as Replicant.Base (Text)
import Data.Text.Encoding as Replicant.Base (encodeUtf8, decodeUtf8)
import Replicant.Types as Replicant.Base
import qualified Debug.Trace as Debug
tr :: Show a => a -> b -> b
tr = Debug.traceShow
tr' :: Show a => a -> a
tr' = Debug.traceShowId
trm :: (Show a, Monad m) => a -> m ()
trm = Debug.traceShowM