| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Bio.Iteratee.Base
Contents
Description
Monadic Iteratees: incremental input parsers, processors and transformers
Synopsis
- data Stream c
- = EOF (Maybe SomeException)
- | Chunk c
- data StreamStatus
- module Bio.Iteratee.Exception
- newtype Iteratee s m a = Iteratee {}
- run :: Monad m => Iteratee s m a -> m a
- tryRun :: (Exception e, Monad m) => Iteratee s m a -> m (Either e a)
- ilift :: (Monad m, Monad n) => (forall r. m r -> n r) -> Iteratee s m a -> Iteratee s n a
- ifold :: (Monad m, Monad n) => (forall r. m r -> acc -> n (r, acc)) -> acc -> Iteratee s m a -> Iteratee s n (a, acc)
- idone :: a -> Stream s -> Iteratee s m a
- icont :: (Stream s -> Iteratee s m a) -> Maybe SomeException -> Iteratee s m a
- liftI :: (Stream s -> Iteratee s m a) -> Iteratee s m a
- idoneM :: Monad m => a -> Stream s -> m (Iteratee s m a)
- icontM :: Monad m => (Stream s -> Iteratee s m a) -> Maybe SomeException -> m (Iteratee s m a)
- setEOF :: Stream c -> SomeException
- class NullPoint c where
- class NullPoint c => Nullable c where
Types
A stream is a (continuing) sequence of elements bundled in Chunks. The first variant indicates termination of the stream. Chunk a gives the currently available part of the stream. The stream is not terminated yet. The case (null Chunk) signifies a stream with no currently available data but which is still continuing. A stream processor should, informally speaking, ``suspend itself'' and wait for more data to arrive.
Constructors
| EOF (Maybe SomeException) | |
| Chunk c |
data StreamStatus Source #
Describe the status of a stream of data.
Constructors
| DataRemaining | |
| EofNoError | |
| EofError SomeException |
Instances
| Show StreamStatus Source # | |
Defined in Bio.Iteratee.Base Methods showsPrec :: Int -> StreamStatus -> ShowS # show :: StreamStatus -> String # showList :: [StreamStatus] -> ShowS # | |
Exception types
module Bio.Iteratee.Exception
Iteratees
newtype Iteratee s m a Source #
Monadic iteratee
Constructors
| Iteratee | |
Instances
| NullPoint s => MonadTrans (Iteratee s) Source # | |
Defined in Bio.Iteratee.Base | |
| (Monad m, Nullable s) => Monad (Iteratee s m) Source # | |
| Functor m => Functor (Iteratee s m) Source # | |
| (Functor m, Monad m, Nullable s) => Applicative (Iteratee s m) Source # | |
Defined in Bio.Iteratee.Base | |
| (MonadIO m, Nullable s, NullPoint s) => MonadIO (Iteratee s m) Source # | |
Defined in Bio.Iteratee.Base | |
| (MonadThrow m, Nullable s, NullPoint s) => MonadThrow (Iteratee s m) Source # | |
Defined in Bio.Iteratee.Base | |
| (MonadCatch m, Nullable s, NullPoint s) => MonadCatch (Iteratee s m) Source # | |
| (MonadMask m, Nullable s, NullPoint s) => MonadMask (Iteratee s m) Source # | |
Functions
Control functions
run :: Monad m => Iteratee s m a -> m a Source #
Send EOF to the Iteratee and disregard the unconsumed part of the
stream. If the iteratee is in an exception state, that exception is
thrown with throw. Iteratees that do not terminate
on EOF will throw EofException.
tryRun :: (Exception e, Monad m) => Iteratee s m a -> m (Either e a) Source #
Run an iteratee, returning either the result or the iteratee exception.
Note that only internal iteratee exceptions will be returned; exceptions
thrown with Control.Exception.throw or Control.Monad.CatchIO.throw will
not be returned.
See IFException for details.
ilift :: (Monad m, Monad n) => (forall r. m r -> n r) -> Iteratee s m a -> Iteratee s n a Source #
Lift a computation in the inner monad of an iteratee.
A simple use would be to lift a logger iteratee to a monad stack.
logger :: Iteratee String IO () logger = mapChunksM_ putStrLn loggerG :: MonadIO m => Iteratee String m () loggerG = ilift liftIO logger
A more complex example would involve lifting an iteratee to work with
interleaved streams. See the example at merge.
ifold :: (Monad m, Monad n) => (forall r. m r -> acc -> n (r, acc)) -> acc -> Iteratee s m a -> Iteratee s n (a, acc) Source #
Lift a computation in the inner monad of an iteratee, while threading through an accumulator.
Creating Iteratees
icontM :: Monad m => (Stream s -> Iteratee s m a) -> Maybe SomeException -> m (Iteratee s m a) Source #
Stream Functions
setEOF :: Stream c -> SomeException Source #
Produce the EOF error message. If the stream was terminated because
of an error, keep the error message.
Classes
class NullPoint c where Source #
NullPoint class. Containers that have a null representation, corresponding to Data.Monoid.mempty.
Minimal complete definition
Instances
| NullPoint ByteString Source # | |
Defined in Bio.Iteratee.Base Methods emptyP :: ByteString Source # | |
| NullPoint ByteString Source # | |
Defined in Bio.Iteratee.Base Methods emptyP :: ByteString Source # | |
| NullPoint BgzfChunk Source # | |
Defined in Bio.Iteratee.Bgzf | |
| NullPoint Block Source # | |
Defined in Bio.Iteratee.Bgzf | |
| NullPoint [a] Source # | |
Defined in Bio.Iteratee.Base | |
| NullPoint (Endo a) Source # | |
Defined in Bio.Iteratee.Base | |
class NullPoint c => Nullable c where Source #
Nullable container class
Minimal complete definition
Instances
| Nullable ByteString Source # | |
Defined in Bio.Iteratee.Base Methods nullC :: ByteString -> Bool Source # | |
| Nullable ByteString Source # | |
Defined in Bio.Iteratee.Base Methods nullC :: ByteString -> Bool Source # | |
| Nullable BgzfChunk Source # | |
| Nullable Block Source # | |
| Nullable [a] Source # | |
Defined in Bio.Iteratee.Base | |
| Nullable (Endo BgzfTokens) Source # | |
Defined in Bio.Iteratee.Builder | |