I think we’ve both swung back and forth about getting rid of vectors. There used to be significantly more distinction between vectors and arrays - you couldn’t perform non-constant element access to vectors, for example, and we’ve also relaxed rules around .at() vs [ ] access to elements of both arrays and vectors.
Since this is not an OO language, it’s impossible for users to add data types and make them use natural operators. If a user wanted, say, a complex number, then there is no simple way for them to make these appear naturally in SOUL.
vector is an example of this - it supports concepts like scalar multiplication, and without this, you’d have to write a helper function and you’d not have as simple looking code. Within DSP I think it’s a common enough concept, especially for representing frames.
And talking of vector, i’ve been exploring adding multi-dimensional support for matrix operations. That’ll be helpful for ML derived algorithms…