| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
Bluefin.Coroutine
Documentation
Coroutine allows to yield values and receive results back.
Wikipedia
suggests
that Bluefin's coroutines are "second-class stackful
coroutines". This module is not documented yet. You might
want to start with Bluefin.Stream, which is the most common
way to use coroutines.
Handle
data Coroutine a b (s :: Effects) #
A handle to a coroutine that expects values of type a and then
yields values of type b.
Handlers
Arguments
| :: forall a b (es :: Effects) r. (forall (e1 :: Effects). Coroutine a b e1 -> Eff (e1 :& es) r) | |
| -> (a -> Eff es b) | Apply this effectful function for each element of the coroutine |
| -> Eff es r |
>>> runPureEff $ yieldToList $ \y -> do
forEach (inFoldable [0 .. 3]) $ \i -> do
yield y i
yield y (i * 10)
([0, 0, 1, 10, 2, 20, 3, 30], ())