Let me try… type Unit = object act: proc() func newMarine() = Unit(act: proc() = echo "marine acted") func newTank() = Unit(act: proc() = echo "tank acted") let units = [newMarine(), newTank()] for unit in units: unit.act Run
(replace `object` with `ref object` if you want reference semantics)