Very interesting ideas!
I’m not sure there is much advantage in this first section over just using the test1 variable, which already holds a list. It certainly would avoid many enlist calls, but that’s about it.
But these sections ar much more interesting. They add a lot of new convenience.
I’m not sure this is worth the additional syntactic sugar, given that I would expect this to do the same:
<$let test5={{{ [range[1],[50]first[10]let[v...]] }}}> -> v.1 .. v.10
<!-- ^^^^^^^^^ -->
I can’t tell how much I would use this. I guess it would make sense when the list is a tuple in disguise.
So overall, some very nice ideas.
However, I think it may be a little late. I assume that the following is planned for 5.4.0:
Introducing Multi-valued Variables
It is syntactically very different but seems to cover much of the same ground as this proposal.