srean
10 hours ago
Could you take a look at Barry Jay's shape theory.
https://web.archive.org/web/20111015133833/http://www-staff....
This was used in his shape aware language FiSh, for dealing with multidimensional arrays. Shape compatibilities were statically type checked, if I recall correctly. Shapes were also used to optimize the loops.
[Programming in FISh] https://link.springer.com/article/10.1007/s100090050037
[Towards Dynamic Shaping] https://www.researchgate.net/publication/265975794_Towards_D...
bietroi
an hour ago
It's cool to see that others have explored some of these concepts more generally, thanks for the links!
The glowstick shape is also a type-level list of integers, and I could definitely see how other shapes might be useful in different situations.
Doing this sort of thing in Rust is a bit of a stretch for sure, but it makes the outcome easy to apply which is nice.