Lots of good ideas in the readme, though I’m not sure how “finished” the language is. It seems abandoned :(
The author says the language’s runtime values are untyped. How can this be true? Does every runtime value have the same word size? Is everything a pointer?
Curious to what extent polymorphism is supported. The README makes clear that first class polymorphism is not supported (np). I wonder if their comment about compile-time resolution suggests a C++ template style solution?
Thanks for sharing; these are my favorite kind of posts :)
Does every runtime value have the same word size? Is everything a pointer?
I think what the author means by “untyped” isn’t that there’s no runtime tags (if you look at the VM compiler it’s embedding scheme values in the “bytecode”), but that since there’s no exposed way to get a value’s type at runtime an =u definition has basically complete freedom to control how a type’s implemented. Compare something like Haskell where a data definition always introduces a tagged value that’s visible to pattern matching.
This project is weird and I like it a lot.