In this example
proc test(names:varargs[string]) =
for n in names:
echo n
echo "----"
test "hello", "world"
test @["hello", "world"]
Run
both calls work. The first call passes string arguments, they are implicitly
converted to an `openArray` for the `varargs` proc as usual. Looking at the
second call, the compiler thinks that you already did that conversion because
it gets a `seq`, which is an `openArray`. So for the last call in your example,
the compiler cannot decide whether you are trying to call the first proc with
one argument or the second proc with two arguments.