module PhatSort.Monad.Stdio
(
MonadStdio(..)
) where
import qualified Prelude
import Prelude hiding (putStrLn)
import Control.Monad.Trans.Class (MonadTrans(lift))
import Control.Monad.Trans.Except (ExceptT)
class Monad m => MonadStdio m where
putStrLn :: String -> m ()
instance MonadStdio IO where
putStrLn :: String -> IO ()
putStrLn = String -> IO ()
Prelude.putStrLn
{-# INLINE putStrLn #-}
instance MonadStdio m => MonadStdio (ExceptT e m) where
putStrLn :: String -> ExceptT e m ()
putStrLn = forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (m :: * -> *). MonadStdio m => String -> m ()
putStrLn
{-# INLINE putStrLn #-}