I'm quickly posting this here so I don't forget to tell you and so you see it ASAP,
About the feature addition to ICE v2 we were talking about, where [1,2,3,4,5]->L1 would store a list into any var's pointer (so [1,2,3,4,5]->A would store to wherever A points to), I was thinking about it and had the idea to make the first argument the byte sizes, like in the data() command.
So [
3,1,2,3,4,5]->A would store the
3 byte variants of 1,2,3,4, & 5 into wherever A points to (or [3,1,2,3,4,5]->L1 to store to wherever L1 points to, etc) , and [
1,1,2,3,4,5]->A would store the
1 byte variants of 1,2,3,4, & 5 into wherever A points to (or [1,1,2,3,4,5]->L1 to store to wherever L1 points to, etc). Same applies to 2 byte variants.
OR, instead of the first argument being the byte size, it could be the amount of brackets.
so [[[1,2,3,4,5]]]->A would be 3 byte values
[[1,2,3,4,5]]->A would be 2 byte values
[1,2,3,4,5]->A would be 1 byte values
OR, same as above but inverted, because 3 byte values are more commonly used
so [[[1,2,3,4,5]]]->A would be 1 byte values
[[1,2,3,4,5]]->A would be 2 byte values
[1,2,3,4,5]->A would be 3 byte values
The first argument one seems to be the best idea though.
It's a quick little argument that would add a sizable amount more use cases to [1,2,...]->POINTER.
All of this is, of course, if you decide to implement the feature we talked about in the first place (please do, I'm tired of "copy(var,data(size,data1,data1,...),size*3"
).