Varargs
Standard varargs simply allows you to pass multiple parameters to your function.
proc printThings(things: varargs[string]) =
for thing in things:
echo thing
printThings "words", "to", "print"
proc printThings(things: varargs[string, `$`]) =
for thing in things:
echo thing
printThings "thing 1", 2, @[4, 5, 6]
It works by finding a function $
that returns string for each argument type, and applying it to each argument.