3 IOMode(ReadMode,WriteMode,AppendMode,ReadWriteMode),
4 BufferMode(NoBuffering,LineBuffering,BlockBuffering),
5 SeekMode(AbsoluteSeek,RelativeSeek,SeekFromEnd),
6 stdin, stdout, stderr, openFile, hClose, hFileSize, hIsEOF, isEOF,
7 hSetBuffering, hGetBuffering, hFlush, hGetPosn, hSetPosn, hSeek,
8 hIsOpen, hIsClosed, hIsReadable, hIsWritable, hIsSeekable, hReady,
9 hGetChar, hLookAhead, hGetContents, hPutChar, hPutStr, hPrint,
10 isAlreadyExistsError, isAlreadyInUseError, isFullError, isEOFError,
11 isIllegalOperation, isPermissionError, isUserError,
12 ioeGetHandle, ioeGetFileName ) where
16 instance Eq Handle where ...
18 instance Eq HandlePosn where ...
20 data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
21 deriving (Eq, Ord, Ix, Enum, Read, Show)
22 data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int)
23 deriving (Eq, Ord, Read, Show)
24 data SeekMode = AbsoluteSeek | RelativeSeek | SeekFromEnd
25 deriving (Eq, Ord, Ix, Enum, Read, Show)
27 stdin, stdout, stderr :: Handle
28 openFile :: FilePath -> IOMode -> IO Handle
29 hClose :: Handle -> IO ()
30 hFileSize :: Handle -> IO Integer
31 hIsEOF :: Handle -> IO Bool
34 hSetBuffering :: Handle -> BufferMode -> IO ()
35 hGetBuffering :: Handle -> IO BufferMode
36 hFlush :: Handle -> IO ()
37 hGetPosn :: Handle -> IO HandlePosn
38 hSetPosn :: HandlePosn -> IO ()
39 hSeek :: Handle -> SeekMode -> Integer -> IO ()
40 hIsOpen :: Handle -> IO Bool
41 hIsClosed :: Handle -> IO Bool
42 hIsReadable :: Handle -> IO Bool
43 hIsWritable :: Handle -> IO Bool
44 hIsSeekable :: Handle -> IO Bool
45 hReady :: Handle -> IO Bool
47 try :: IO a -> IO (Either IOError a)
48 try f = catch (do r <- f
52 bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c
53 bracket before after m = do
61 -- variant of the above where middle computation doesn't want x
62 bracket_ :: IO a -> (a -> IO b) -> IO c -> IO c
63 bracket_ before after m = do