Splits a union-typed stream t1|t2 into one output per variant. Each tick exactly one output fires — the branch matching the message's variant tag — carrying the unwrapped value; the others stay quiet. A router, not a fan-out. Inverse of pack_union.
Typical backends
Build a heterogeneous union upstream, then demux it onto per-variant branches for type-specific handling.
Route a packed union onto branches and filter one variant before viewing it.
Caveats
- OrderingEach input tick fires exactly one output branch in declared variant order; the rest stay quiet, so this is a router not a fan-out. Output port order follows the declared variant order, and reordering downstream must rewire explicitly.
- I/O contractDownstream stages on inactive branches see sparse, irregular ticks and must tolerate gaps in cadence. Variants must be jointly exhaustive — every union value falls into exactly one declared branch.