'S-expressions are a bad idea' by notable lisper Dave Moon:
https://cl.cddddr.org/index.cgi?Essay:S-expressions are a bad idea&l=
Argues in favour of richer data types for syntax rather than lists and symbols. It's true: propagating positions when your macro is incorrectly used is difficult!
miniblog.
Related Posts
I'm a big fan of segmented stacks (or 'split stacks'), where stack frames are heap allocated, You can write recursive functions with less worry, and you get better tracebacks than TCO.
Go is the most popular language with this feature, to my knowledge: https://dave.cheney.net/2013/06/02/why-is-a-goroutines-stack-infinite
I'd assumed that LLVM didn't support this, but gollvm handles it fine! https://groups.google.com/g/golang-nuts/c/ivOZ-j6Zt2c/m/BUBX2Td9BgAJ