---
name: flow
kind: syntax
since: 0.1
stability: stable
---
Workflow definition.
```axon
flow Name(param: Type) -> ReturnType {
step Stage {
ask: "prompt"
output: ReturnType
}
}
```
A `flow` is a named, parameterised composition of `step`s. The
return type is mandatory and checked end-to-end: every terminal
step must produce a value assignable to it. Flows are first-class
references — they can be invoked from `run` statements, embedded
in `axpoint`s, or driven by `daemon`s.
Effects performed inside a flow body are tracked in the type
checker's effect row; flows that consume `Trusted<T>` or emit on a
shielded channel surface those effects in the signature.