Understanding VARARGS!

Ugh, just realised I was looking at hostilefork/ren-c tests, my bad. Not quite sure how I got there.

I understand the dicey nature of peering out ahead (see also, EVALUATION question), but there seems a potential to quoted variadics vs. non-quoted that is currently unrealised. Perhaps they should be two different concerns.

  • Quoted variadics wouldn't necessarily need to be last

  • Is fixed in scope based purely on type

  • Value could be handled as a block instead of a pseudotype

Could use flags that would throw an error if used in conjunction with a non-quoted arg:

any-nums: func [
    'values [<any> integer! decimal!]
    other-arg [non-number!]
][
    true = block? values
]

any-nums 1 2 3 <thing>
any-nums <thing>

some-nums: func [
    'values [<some> integer! decimal!]
    other-arg [non-number!]
][
    true = block? values
]

some-nums 1 2 3 <thing>