ListLike-3.1.7.1: Generic support for list-like structures

Portability | portable
Stability | provisional
Maintainer | John Lato <jwlato@gmail.com>
Safe Haskell | Safe-Inferred

Data.ListLike.IO

Description

String-like functions

Written by John Goerzen, jgoerzen@complete.org

Synopsis

- class ListLike full item => ListLikeIO full item | full -> item where
  - hGetLine :: Handle -> IO full
  - hGetContents :: Handle -> IO full
  - hGet :: Handle -> Int -> IO full
  - hGetNonBlocking :: Handle -> Int -> IO full
  - hPutStr :: Handle -> full -> IO ()
  - hPutStrLn :: Handle -> full -> IO ()
  - getLine :: IO full
  - getContents :: IO full
  - putStr :: full -> IO ()
  - putStrLn :: full -> IO ()
  - interact :: (full -> full) -> IO ()
  - readFile :: FilePath -> IO full
  - writeFile :: FilePath -> full -> IO ()
  - appendFile :: FilePath -> full -> IO ()

# Documentation

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

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

Methods

hGetLine :: Handle -> IO full

Reads a line from the specified handle

hGetContents :: Handle -> IO full

Read entire handle contents. May be done lazily like `hGetContents`.

hGet :: Handle -> Int -> IO full

Read specified number of bytes. See `hGet` for particular semantics.

hGetNonBlocking :: Handle -> Int -> IO full

Non-blocking read. See `hGetNonBlocking` for more.

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

Writing entire data.

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

Write data plus newline character.

getLine :: IO full

Read one line

getContents :: IO full

Read entire content from stdin. See `hGetContents`.

putStr :: full -> IO ()

Write data to stdout.

putStrLn :: full -> IO ()

Write data plus newline character to stdout.

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

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

readFile :: FilePath -> IO full

Read file. May be lazy.

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

Write data to file.

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

Append data to file.

Instances

ListLikeIO String Char |
ListLikeIO ByteString Word8 |
ListLikeIO ByteString Word8 |
ListLikeIO CharStringLazy Char |
ListLikeIO CharString Char |
ListLikeIO (Seq Char) Char |
(Integral i, Ix i) => ListLikeIO (Array i Char) Char |