-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Bridge between the monad-coroutine and enumerator packages.
--
-- This package acts as a bidirectional bridge between two monad
-- transformers: the Data.Enumerator.Iteratee in the enumerator package,
-- and the Control.Monad.Coroutine.Coroutine in the monad-coroutine
-- package.
@package coroutine-enumerator
@version 0.1
-- | This module provides a bridge between the Control.Monad.Coroutine and
-- the Data.Enumerator monad transformers.
module Control.Monad.Coroutine.Enumerator
-- | Converts a Coroutine parameterized with the Yield
-- functor into an Enumerator.
coroutineEnumerator :: Monad m => Coroutine (Yield [a]) m b -> Enumerator a m c
-- | Converts an Enumerator into a Coroutine parameterized
-- with the Yield functor.
enumeratorCoroutine :: Monad m => Enumerator a (Coroutine (Yield [a]) m) () -> Coroutine (Yield [a]) m ()
-- | Converts a Coroutine parameterized with the Await [x]
-- functor, treating an ampty input chunk as EOF, into an
-- Iteratee.
coroutineIteratee :: Monad m => Coroutine (Await [a]) m (Either SomeException (b, [a])) -> Iteratee a m b
-- | Converts an Iteratee into a Coroutine parameterized with
-- the Await [x] functor. The coroutine treats an empty input
-- chunk as EOF.
iterateeCoroutine :: Monad m => Iteratee a m b -> Coroutine (Await [a]) m (Either SomeException (b, [a]))
-- | Converts an Iteratee into a Coroutine parameterized with
-- the Await (Stream x) functor.
iterateeStreamCoroutine :: Monad m => Iteratee a m b -> Coroutine (Await (Stream a)) m (Either SomeException (b, Stream a))
-- | Converts a Coroutine parameterized with the Await
-- functor into an Iteratee.
streamCoroutineIteratee :: Monad m => Coroutine (Await (Stream a)) m (Either SomeException (b, Stream a)) -> Iteratee a m b