module Data.OI.IO
(
openFile
,hIsClosed
,hIsEOF
,hGetLine
,hClose
,hPutStrLn
,isEOF
,getLine
,putStrLn
) where
import Data.OI.Base
import System.IO (IOMode(..),Handle)
import qualified System.IO as IO
import System.FilePath
import Prelude hiding (getLine,putStrLn)
type a :=> b = OI (IOResult a) -> IOResult b
openFile :: FilePath -> IOMode -> Handle :=> Handle
openFile = (iooi' .) . IO.openFile
hIsClosed :: IO.Handle -> Bool :=> Bool
hIsClosed = iooi' . IO.hIsClosed
hIsEOF :: IO.Handle -> Bool :=> Bool
hIsEOF = iooi' . IO.hIsEOF
hGetLine :: IO.Handle -> String :=> String
hGetLine = iooi' . IO.hGetLine
hClose :: IO.Handle -> () :=> ()
hClose = iooi' . IO.hClose
hPutStrLn :: IO.Handle -> String -> () :=> ()
hPutStrLn = (iooi' .) . IO.hPutStrLn
isEOF :: Bool :=> Bool
isEOF = iooi' IO.isEOF
getLine :: String :=> String
getLine = iooi' IO.getLine
putStrLn :: String -> () :=> ()
putStrLn = iooi' . IO.putStrLn