prologue-3.0.9: src/Prologue/Control/Monad/IO.hs
module Prologue.Control.Monad.IO (module Prologue.Control.Monad.IO, module X) where
import qualified Prelude as P
import Prelude (Char, String)
import Prelude as X (FilePath, IOError, userError)
import Prologue.Data.Show
import Prologue.Control.Monad.Primitive
import Data.Functor.Utils
putChar :: MonadIO m => Char -> m ()
putStr :: MonadIO m => String -> m ()
putStrLn :: MonadIO m => String -> m ()
putChar = liftIO . P.putChar ; {-# INLINE putChar #-}
putStr = liftIO . P.putStr ; {-# INLINE putStr #-}
putStrLn = liftIO . P.putStrLn ; {-# INLINE putStrLn #-}
print, pprint :: (MonadIO m, Show a) => a -> m ()
print = liftIO . P.print ; {-# INLINE print #-}
pprint = putStrLn . ppShow ; {-# INLINE pprint #-}
getChar :: MonadIO m => m Char
getLine :: MonadIO m => m String
getContents :: MonadIO m => m String
getChar = liftIO P.getChar ; {-# INLINE getChar #-}
getLine = liftIO P.getLine ; {-# INLINE getLine #-}
getContents = liftIO P.getContents ; {-# INLINE getContents #-}
interact :: MonadIO m => (String -> String) -> m ()
interact = liftIO . P.interact ; {-# INLINE interact #-}
readFile :: MonadIO m => FilePath -> m String
writeFile :: MonadIO m => FilePath -> String -> m ()
readFile = liftIO . P.readFile ; {-# INLINE readFile #-}
writeFile = liftIO .: P.writeFile ; {-# INLINE writeFile #-}
appendFile :: FilePath -> String -> IO ()
appendFile = liftIO .: P.appendFile ; {-# INLINE appendFile #-}
ioError :: MonadIO m => IOError -> m a
ioError = liftIO . P.ioError ; {-# INLINE ioError #-}