module Precursor.System.IO
(
IO
, MonadIO
, liftIO
, FilePath
, readFile
, writeFile
, appendFile
, interact
, getContents
, getLine
, putStr
, putStrLn
) where
import Control.Monad.IO.Class
import Data.Text.Lazy
import qualified Data.Text.Lazy.IO as Text
import Precursor.Control.Category
import Precursor.Function
import System.IO (FilePath, IO)
readFile :: MonadIO m => FilePath -> m Text
readFile = liftIO . Text.readFile
writeFile :: MonadIO m => FilePath -> Text -> m ()
writeFile = liftIO .: Text.writeFile
appendFile :: MonadIO m => FilePath -> Text -> m ()
appendFile = liftIO .: Text.appendFile
interact :: MonadIO m => (Text -> Text) -> m ()
interact = liftIO . Text.interact
getContents :: MonadIO m => m Text
getContents = liftIO Text.getContents
getLine :: MonadIO m => m Text
getLine = liftIO Text.getLine
putStr :: MonadIO m => Text -> m ()
putStr = liftIO . Text.putStr
putStrLn :: MonadIO m => Text -> m ()
putStrLn = liftIO . Text.putStrLn