Introduced carp which I haven't heard of before.
Carp borrows its looks from Clojure but the runtime semantics are much closer to those of ML or Rust. Types are inferred but can be annotated for readability using the the keyword (see below).
Memory management is handled by static analysis, a value is owned by the function where it was created. When a value is returned or passed to another function the initial function will give up ownership of it and any subsequent use will lead to a compiler error. To temporarily lend a value to another function (for example to print it) a reference must be created, using the ref special form (or the & reader macro).
Bret Victor and has links to his videos.
Talks about the Glamourous Toolkit which is an editor for SmallTalk/Pharo.
Articles on how the compiler was created.
https://news.ycombinator.com/item?id=33793108
https://www.youtube.com/playlist?list=PLS9MbmO_ssyCzjONn8v796nUGRXMX389H https://gamefromscratch.com/odin-programming-language/
Linear types allow for a simplified model for handling lifetimes, and as used in Austral capability system. As originally described they are threaded. Later in the document a more ergonomic 'borrowing' style is allowed (as taken from Rust). Australs 'borrowing' is more limited, but usage is more clear.
interleaved
style, such that it's like a fixed length array of T