Skip to main content

stream

Since pre-v2.67.0; body executed since v2.67.0 · Used inside a declaration

Grammar​

stream {
<handler-steps>
}

stream is the algebraic-effects block: its body declares handlers over the Free-Monad CPS runtime.

What the runtime actually does (v2.67.0)​

The body is parsed, lowered into the IR, and executed — before v2.67.0 it went through parse_block_step, whose entire job was skip_braced_block(): the contents were thrown away at parse time and the block "completed" with an empty string while the README sold "Algebraic Effects and Free Monads".

Proof​

axon-rs/tests/stream_runs.rs — the body RUNS; axon-frontend/tests/stream_body.rs — the body lowers.

See also​

  • axon://primitives/step — what the body is made of.