FSet (a CL library) has a great defence of default types being immutable with value semantics.
https://common-lisp.net/project/fset/Site/index.html
Related Posts
When a tool supports both regular expressions and literal strings, which should be the default?
If you default to regex, users can match more strings than they realise (e.g. `foo.txt`) or less (e.g. `foo(bar)`).
I typically see regex as the default, but I prefer the opposite.
Is there any relationship between language adoption and the size of its standard library?
These days it seems completely orthogonal, but early Java adopters spoke highly of the collections library compared with C++.
Maybe it's the widespread availability of package managers?
I've been using "Expected Int, but got String" for my type error messages, but I've been wondering if I could do better.
"Expected Int here, but this value has type String" or "This expression requires Int, but the value is String".
Do you have a favourite?