Effects and code as a database in Unison: https://jaredforsyth.com/posts/whats-cool-about-unison/
Unison is looking at changing their program representation to plain sqlite!
miniblog.
Related Posts
I like the notion of "pac-man complete", the idea that your programming language needs enough effects/IO to do a 2D game: https://prog21.dadgum.com/23.html
We should have more levels of language capability. 'Can do Hello World' and 'can do fizzbuzz' are useful for a new language.
Rust is exploring ideas that allow it to generalise over effects, so you don't need foo and foo_async.
It's an unusual name, and potentially complicates error messages, but it's good problem to examine.
It's weird how ! denotes side effects when it's allowed in names (Scheme, Ruby) but there isn't a clear equivalent in other languages.
My only theory is that "side effects" is often vague. list-add!, table-drop! and ping! are very different effects.