How to... PolyNode The base building block: one struct field gives a type tag identity and lets you recover the typed pointer later. Define a PolyNode type Item transfer via Slot Tag-dispatch consume loop Tag-first dispatch loop Table dispatch — the choice as data Builder pattern Produce-consume with defer cleanup