Safe Haskell  Safe 

Language  Haskell2010 
 newtype Tap r s m = Tap {}
 consTap :: (Semigroup r, Applicative m) => s > Tap r s m > Tap r s m
 orderTap :: Semigroup r => r > Tap r s m > Tap r s m
 makeTap :: Monad m => m (Tap r s m) > Tap r s m
 repeatTap :: Applicative m => s > Tap r s m
 repeatTapM :: Applicative m => m s > Tap r s m
 repeatTapM' :: Applicative m => m s > Tap () s m
 newtype Joint r m s = Joint {}
 newtype Producer r s m a = Producer {
 unProducer :: (a > Tap r s m) > Tap r s m
 yield :: (Semigroup r, Applicative f, Applicative m) => s > Producer r (f s) m ()
 accept :: Monoid r => Producer r s m r
 inexhaustible :: Producer r s m x > Tap r s m
 tapProducer :: (Monoid r, Applicative m, Alternative f) => Producer r (f s) m a > Tap r (f s) m
 tapProducer' :: (Applicative m, Alternative f) => Producer () (f s) m a > Tap () (f s) m
 produce :: (Semigroup r, Applicative m) => s > Producer r s m ()
 newtype ListT r m s = ListT {}
 sample :: Foldable f => f s > ListT r m s
 inquire :: Monoid r => ListT r m r
 tapListT :: (Semigroup r, Applicative m, Alternative f) => ListT r m s > Tap r (f s) m
 tapListT' :: (Applicative m, Alternative f) => ListT () m s > Tap () (f s) m
 retractListT :: Monad m => ListT () m s > m ()
 consume :: (Monoid r, MonadSink (Tap r s) m) => m s
 leftover :: (Semigroup r, MonadSink (Tap r s) m) => s > m ()
 request :: (Semigroup r, MonadSink (Tap r s) m) => r > m ()
 prefetch :: (Monoid r, Semigroup r, MonadSink (Tap r s) m) => m s
 eof :: (Applicative m, Alternative f) => Tap r (f a) m
Tap
is a nonmonadic, endless producer of Tap
m r ss
. It takes a request
r
.
CloseRequest r => Closable (Tap r s) Source #  
consTap :: (Semigroup r, Applicative m) => s > Tap r s m > Tap r s m Source #
Prepend a new element, delaying requests.
repeatTap :: Applicative m => s > Tap r s m Source #
repeatTapM :: Applicative m => m s > Tap r s m Source #
repeatTapM' :: Applicative m => m s > Tap () s m Source #
(<*>
) zips two taps.
Functor m => Functor (Joint r m) Source #  
Applicative m => Applicative (Joint r m) Source #  
Producer
newtype Producer r s m a Source #
Monadic producer
Producer  

yield :: (Semigroup r, Applicative f, Applicative m) => s > Producer r (f s) m () Source #
inexhaustible :: Producer r s m x > Tap r s m Source #
tapProducer :: (Monoid r, Applicative m, Alternative f) => Producer r (f s) m a > Tap r (f s) m Source #
tapProducer' :: (Applicative m, Alternative f) => Producer () (f s) m a > Tap () (f s) m Source #
Specialised runProducer
produce :: (Semigroup r, Applicative m) => s > Producer r s m () Source #
Produce one element. Orders are put off.
ListT
Backtracking producer a.k.a. "ListT done right".
tapListT :: (Semigroup r, Applicative m, Alternative f) => ListT r m s > Tap r (f s) m Source #
tapListT' :: (Applicative m, Alternative f) => ListT () m s > Tap () (f s) m Source #
Specialised runListT
retractListT :: Monad m => ListT () m s > m () Source #
Sink
prefetch :: (Monoid r, Semigroup r, MonadSink (Tap r s) m) => m s Source #
Get one element without consuming.
End of stream
eof :: (Applicative m, Alternative f) => Tap r (f a) m Source #
End of stream