{-# LANGUAGE FlexibleContexts #-}
module Interlude (module X, module Interlude) where

import Prelude as X hiding (print)
import qualified Prelude
import Data.ByteString as X (ByteString)
import Control.Monad.IO.Class as X
import Control.Monad.Catch as X
import Data.Proxy as X
import Control.Monad.State as X
import Data.Function as X
import Data.Semigroup as X
import Data.String.Conv as X
import Control.Concurrent.MVar as X
import Data.Maybe as X
import Data.Text as X (Text)
import Data.Aeson as X hiding (Error)
import Data.Char as X
import Control.Concurrent as X
import Control.Arrow as X

pshow :: (StringConv String b, Show a) => a -> b
pshow = toS . show

putText :: MonadIO m => Text -> m ()
putText = liftIO . putStrLn . toS

print :: (Show a, MonadIO m) => a -> m ()
print = liftIO . Prelude.print . show