ListLike-2.0.1: Generic support for list-like structures

MaintainerJohn Goerzen <>



String-like functions

Written by John Goerzen,



class ListLike full item => ListLikeIO full item | full -> item whereSource

An extension to ListLike for those data types that support I/O. These functions mirror those in System.IO for the most part. They also share the same names; see the comments in Data.ListLike for help importing them.

Note that some types may not be capable of lazy reading or writing. Therefore, the usual semantics of System.IO functions regarding laziness may or may not be available from a particular implementation.

Minimal complete definition:

  • hGetLine
  • hGetContents
  • hGet
  • hGetNonBlocking
  • hPutStr


hGetLine :: Handle -> IO fullSource

Reads a line from the specified handle

hGetContents :: Handle -> IO fullSource

Read entire handle contents. May be done lazily like System.IO.hGetContents.

hGet :: Handle -> Int -> IO fullSource

Read specified number of bytes. See System.IO.hGet for particular semantics.

hGetNonBlocking :: Handle -> Int -> IO fullSource

Non-blocking read. See System.IO.hGetNonBlocking for more.

hPutStr :: Handle -> full -> IO ()Source

Writing entire data.

hPutStrLn :: Handle -> full -> IO ()Source

Write data plus newline character.

getLine :: IO fullSource

Read one line

getContents :: IO fullSource

Read entire content from stdin. See hGetContents.

putStr :: full -> IO ()Source

Write data to stdout.

putStrLn :: full -> IO ()Source

Write data plus newline character to stdout.

interact :: (full -> full) -> IO ()Source

Interact with stdin and stdout by using a function to transform input to output. May be lazy. See System.IO.interact for more.

readFile :: FilePath -> IO fullSource

Read file. May be lazy.

writeFile :: FilePath -> full -> IO ()Source

Write data to file.

appendFile :: FilePath -> full -> IO ()Source

Append data to file.