I just realized that special treatment for named arguments or repeated arguments in this proposal is unnecessary. We can just pass through those arguments like this.
f(a, s: _*, k = v)
Translated to:
f.applyBegin
.applyNext(a)
.applyNext(s: _*)
.applyNext(k = v)
.applyEnd
Then the library author is able to handle the parameter name k
at runtime with help of a Dynamic
, and handle s
with the help of ordinary sequence arguments.
How do you think?