Immutability by default is mostly overrated: I’ve written code in many languages (Haskell, Clojure, JS, CL, etc.), and I’ve found I care more whether a library (Immer, ramda, etc.) provides referentially transparent APIs than whether or not the language’s data-structures provide immutability guarantees.
But, additionally, my point was that CL has literal representations for arbitrary data types, not that you can get immutable datastructures from a library.
But, additionally, my point was that CL has literal representations for arbitrary data types, not that you can get immutable datastructures from a library.