yield -package:io-streams

The yield action allows (forces, in a co-operative multitasking implementation) a context-switch to any other currently runnable threads (if any), and is occasionally useful when implementing concurrency abstractions.
Send a value downstream to the next component to consume. If the downstream component terminates, this call will never return control. Since 0.5.0
Send a single output value downstream. If the downstream Pipe terminates, this Pipe will terminate as well. Since 0.5.0
Lifted version of yield.
Generalized version of yield.
Produce a value
yield :: Monad m => a -> Producer a m ()
yield :: Monad m => a -> Pipe   x a m ()
A singleton stream
>>> stdoutLn $ yield "hello"
hello
>>> S.sum $ do {yield 1; yield 2; yield 3}
6 :> ()
>>> let number = lift (putStrLn "Enter a number:") >> lift readLn >>= yield :: Stream (Of Int) IO ()

>>> S.toList $ do {number; number; number}
Enter a number:
1<Enter>
Enter a number:
2<Enter>
Enter a number:
3<Enter>
[1,2,3] :> ()
Same as fromPure
Produce a value
yield :: Monad m => a -> Producer a m ()
yield :: Monad m => a -> Pipe   x a m ()
Output a result.
Allows other parallel computations to progress. (should not be necessary in most cases).
Produce a value
yield :: Monad m => a -> Pipe x a m ()
Send a value downstream.
Yield a value of type a and suspend the coroutine.
Lifts a value and a function into the Coroutine effect.
Allows a context-switch to any other unblocked thread (if any).
Suspend the current coroutine yielding a value.
Let another thread wake up.
yield @tag a emits a in the sink capability tag.
Transfers control to the caller of the computation with coroutines along with a value of type a, and receives a value of type b from the caller.
Send output downstream. Since v0.2.3.0, is strict. See yieldLazy for the original behavior.
Not on Stackage, so not searched. YieldT monad transformer