packages feed

termonad-4.6.0.0: src/Termonad/Prelude.hs

-- | This is a basic prelude-like module that adds a bunch of common datatypes
-- and functions to the 'Prelude'.

module Termonad.Prelude
  ( module X
  , hPutStrLn
  , whenJust
  , stderr
  , tshow
  ) where

import Control.Concurrent.MVar as X (MVar, modifyMVar, modifyMVar_, newMVar, readMVar, withMVar)
import Control.Exception as X (IOException, try)
import Control.Lens as X ((&))
import Control.Monad as X (join, unless, void, when, (<=<))
import Control.Monad.IO.Class as X
import Control.Monad.Trans.Class as X (lift)
import Control.Monad.Trans.Maybe as X (MaybeT(MaybeT), runMaybeT)
import Data.ByteString as X (ByteString)
import Data.Function as X (on)
import Data.Functor as X (($>))
import Data.Int as X (Int32)
import Data.Maybe as X (catMaybes, fromMaybe)
import Data.Proxy as X
import Data.String as X (IsString)
import Data.Text as X (Text)
import Data.Text (pack)
import qualified Data.Text.IO as TextIO
import Data.Word as X (Word8, Word32)
import GHC.Generics as X (Generic)
import Prelude as X
import System.IO (Handle, stderr)

whenJust :: Monoid m => Maybe a -> (a -> m) -> m
whenJust = flip foldMap

hPutStrLn :: MonadIO m => Handle -> Text -> m ()
hPutStrLn hndl = liftIO . TextIO.hPutStrLn hndl

tshow :: Show a => a -> Text
tshow = pack . show