A graph is one expression
a >> (b | c) >> d, and a node is one thing: forward(input, ctx) takes
what arrived along the edges and returns what it produced. No filter type,
no step type, no return value that tells them apart. The graph is compiled
and executed in Rust.