{-| Module: Text.IO Description: IO for Text handling. Copyright: © 2016 All rights reserved. License: GPL-3 Maintainer: Evan Cofsky <> Stability: experimental Portability: POSIX -} module Text.IO ( readFile, writeFile, appendFile, hGetLine, hPutStr, hPutStrLn, getLine, putStr, putStrLn ) where import Lawless import Prelude.Unicode ((∘)) import qualified Data.Text.IO as TIO import Data.Text (Text) import System.Path import Control.Monad.IO.Class import System.Path.IO (Handle) readFile ∷ (MonadIO m) ⇒ AbsRelFile → m Text readFile = liftIO ∘ TIO.readFile ∘ toString writeFile ∷ (MonadIO m) ⇒ AbsRelFile → Text → m () writeFile f t = liftIO $ TIO.writeFile (toString f) $ t appendFile ∷ (MonadIO m) ⇒ AbsRelFile → Text → m () appendFile f t = liftIO $ TIO.appendFile (toString f) t hPutStr ∷ (MonadIO m) ⇒ Handle → Text → m () hPutStr h = liftIO ∘ TIO.hPutStr h hPutStrLn ∷ (MonadIO m) ⇒ Handle → Text → m () hPutStrLn h = liftIO ∘ TIO.hPutStrLn h hGetLine ∷ (MonadIO m) ⇒ Handle → m Text hGetLine = liftIO ∘ TIO.hGetLine getLine ∷ (MonadIO m) ⇒ m Text getLine = liftIO TIO.getLine putStr ∷ (MonadIO m) ⇒ Text → m () putStr = liftIO ∘ TIO.putStr putStrLn ∷ (MonadIO m) ⇒ Text → m () putStrLn = liftIO ∘ TIO.putStrLn