phatsort-0.6.0.0: src/PhatSort/Monad/Stdio.hs
------------------------------------------------------------------------------
-- |
-- Module : PhatSort.Monad.Stdio
-- Description : standard I/O
-- Copyright : Copyright (c) 2019-2023 Travis Cardwell
-- License : MIT
------------------------------------------------------------------------------
module PhatSort.Monad.Stdio
( -- * MonadStdio
MonadStdio(..)
) where
-- https://hackage.haskell.org/package/base
import qualified Prelude
import Prelude hiding (putStrLn)
-- https://hackage.haskell.org/package/transformers
import Control.Monad.Trans.Class (MonadTrans(lift))
import Control.Monad.Trans.Except (ExceptT)
------------------------------------------------------------------------------
-- $MonadStdio
-- | Standard I/O
--
-- @since 0.5.0.0
class Monad m => MonadStdio m where
-- | Write a 'String' to @STDOUT@, appending a newline
putStrLn :: String -> m ()
instance MonadStdio IO where
putStrLn = Prelude.putStrLn
{-# INLINE putStrLn #-}
instance MonadStdio m => MonadStdio (ExceptT e m) where
putStrLn = lift . putStrLn
{-# INLINE putStrLn #-}