Or, with a text based meta-layer (MyDef):<p><pre><code> import macros
$(for:A in A,B,C)
proc $(A)() = echo "$(A)"
proc execute(order: seq[int], callbacks: seq[proc]) =
for i in items(order):
callbacks[i]()
execute(@[0,0,1,2,1,2], @[A, B, C])</code></pre>