System.IO

# The IO monad

data IO a

fixIO

# Files and handles

type FilePath

data Handle

## Standard handles

stdin

stdout

stderr

# Opening and closing files

## Opening files

withFile

openFile

data IOMode

## Closing files

hClose

## Special cases

readFile

writeFile

appendFile

## File locking

# Operations on handles

## Determining and changing the size of a file

hFileSize

hSetFileSize

## Detecting the end of input

hIsEOF

isEOF

## Buffering operations

data BufferMode

hSetBuffering

hGetBuffering

hFlush

## Repositioning handles

hGetPosn

hSetPosn

data HandlePosn

hSeek

data SeekMode

hTell

## Handle properties

hIsOpen

hIsClosed

hIsReadable

hIsWritable

hIsSeekable

## Terminal operations (not portable: GHC/Hugs only)

hIsTerminalDevice

hSetEcho

hGetEcho

## Showing handle state (not portable: GHC only)

hShow

# Text input and output

## Text input

hWaitForInput

hReady

hGetChar

hGetLine

hLookAhead

hGetContents

## Text output

hPutChar

hPutStr

hPutStrLn

hPrint

## Special cases for standard input and output

interact

putChar

putStr

putStrLn

print

getChar

getLine

getContents

readIO

readLn

# Binary input and output

withBinaryFile

openBinaryFile

hSetBinaryMode

hPutBuf

hGetBuf

hGetBufSome

hPutBufNonBlocking

hGetBufNonBlocking

# Temporary files

openTempFile

openBinaryTempFile

openTempFileWithDefaultPermissions

openBinaryTempFileWithDefaultPermissions

# Unicode encoding/decoding

hSetEncoding

hGetEncoding

## Unicode encodings

data TextEncoding

latin1

utf8

utf8_bom

utf16

utf16le

utf16be

utf32

utf32le

utf32be

localeEncoding

mkTextEncoding

# Newline conversion

hSetNewlineMode

data Newline

nativeNewline

data NewlineMode

noNewlineTranslation

universalNewlineMode

nativeNewlineMode