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