Whilst s-expressions are no panacea, they do make some things shockingly easy. Partial application is simple and readable when AST==list.
Related Posts
The most common selling point I hear for Nix is having a list of all the packages you need.
On a traditional Linux distro, I just install things and forget about them. A curated, commented list would certainly be handy when I have a new system.
Counter-intuitively, if you're writing a parser for a programming language, you need it to be a total function. As soon as you build IDE tooling, you need ASTs from invalid or incomplete input.
The parser should return (Ast, List<Error>) rather than Result<Ast, Error>.
I find it odd that people recommend Docker for sandboxing agentic coding tools. Isn't it easier to just create a separate user account on the machine?
It's an established security boundary, and viewing output is easy (just make the user's home directory world readable).