There was also this paper: “You can have it all: abstraction and good cache performance” https://dl.acm.org/doi/10.1145/3133850.3133861… which talks abstracting over struct of arrays (SoA) vs array of structs (AoS) representations.
I’m working on a not-quite-public-yet functional research language that does this! Happy to chat about it — you all can feel free to DM me if you’re interested.