packages feed

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