There are many more advice types than I realised! E.g. :override, :filter-args or :filter-return rather than :around https://www.gnu.org/software/emacs/manual/html_node/elisp/Advice-combinators.html
Related Posts
Playing with optional type signatures in Python, I realise that the return type is the most important to me.
I'd much rather have a function with only a return type instead of a function with only parameter types. It's often quick to add too.
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>.
Today I learnt that the original name for DOS was QDOS, for "Quick and Dirty Operating System"! https://en.wikipedia.org/wiki/DOS#QDOS
(Seems rather unfortunate that they dropped the Q.)