Write-side of an async channel that pushes values, completion, or errors.
Read-side of an async channel that consumes values via iteration or callbacks.
Union of generator events: yield, return, or throw.
A return event.
A throw event.
A yield event.
Yields elements from a generator in batches of size n.
Creates an async channel that buffers values and replays them to each iterator.
Creates an AsyncSource backed by a shared event buffer.
Type guard: checks if an iterable is async.
Pipes values from an async source to an async sink, forwarding all yielded values, the final return value, and any errors that occur.
Creates a lazy generator yielding a sequence of numbers or bigints (like Python's range()).
Runs a generator to completion, optionally observing each yielded value.
Bidirectional async channel combining AsyncSink and AsyncSource.