Vector manifesto

i just want to remind everyone that, having followed Daryle’s original push to add FSAs to the language, it failed because the proposed design was so complex and tried to cover too many esoteric use cases like zero-dimensional arrays and shape-casting. The for _ in loop-ability also felt bolted-on and the proposal would be almost entirely implemented as compiler magic, with no benefits to the rest of the language.

this does not feel like it fits in with the direction of the language, especially since we have actual SIMD types now. there should be no reason to add an explicit “SIMD” attribute to a non-SIMD type to try and get the compiler to make it SIMD behind your back.

this has been proposed before, and i think it’s a nonstarter considering how integral these protocols are to the language. switching up the hierarchy would be massively source breaking and it’s unclear if changing it up would even be an improvement since basically any aggregate protocol hierarchy with a sane number of protocols would involve some tradeoffs.