iteratee-0.1.0: Iteratee-based I/O




Monadic and General Iteratees: incremental input parsers, processors and transformers



class StreamChunk c el whereSource

Class of types that can be used to hold chunks of data within Iteratee streams.


length :: c el -> IntSource

Length of currently available data.

empty :: c elSource

Create an empty chunk of data.

null :: c el -> BoolSource

Test if the current stream is null.

cons :: el -> c el -> c elSource

Prepend an element to the front of the data.

head :: c el -> elSource

Return the first element of the stream.

tail :: c el -> c elSource

Return the tail of the stream.

findIndex :: (el -> Bool) -> c el -> Maybe IntSource

First index matching the predicate.

splitAt :: Int -> c el -> (c el, c el)Source

Split the data at the specified index.

dropWhile :: (el -> Bool) -> c el -> c elSource

Drop data matching the predicate.

append :: c el -> c el -> c elSource

Append to chunks of data into one.

fromList :: [el] -> c elSource

Create a stream from a list.

toList :: c el -> [el]Source

Create a list from the stream.

cMap :: StreamChunk c' el' => (el -> el') -> c el -> c' el'Source

Map a computation over the stream.

class StreamChunk s el => ReadableChunk s el whereSource

Class of streams which can be filled from a Ptr. Typically these are streams which can be read from a file.


readFromPtr :: Ptr el -> Int -> IO (s el)Source