Besides using a generic, your link is the way to go. proc lf2echo(x: varargs[typed, `$`]) = echo x proc lf2echo(x: varargs[typed]) = echo x Run
Same error for both forms. : invalid type: 'typed' in this context: 'proc (x: varargs[typed])' for proc (26, 10) Error: type mismatch: got <varargs[typed]> but expected one of: proc echo(x: varargs[typed, `$`]) first type mismatch at position: 1 required type for x: varargs[typed] but expression 'x' is of type: varargs[typed] Run The way to present echo with the expected [typed, `$`] Run seems to be a macro, quite close to the C va_arg() macro. Thanks for the exact reference.