| > Neither C nor C++ have built-in immutable data structures First of all, yes they do, you can use const on structs and objects and methods to ensure your C/C++ data structure is immutable. But this is moot anyway: > so those persistent data structures with their immutable API are implemented using mutable C structs or C++ classes ZFS isn't something that's in memory, it's a file system… It's a data structure on disk, it's language-agnostic. > That's because the set of mutable data structures is a strict superset of (i.e., contains all) the set of immutable data structures. In theory, that's true. It's just a useless fact. We use immutable data structures because they have benefits. Using the same data structure without immutability may just render it worse as a software tool. So people don't use immutable data structures with the immutability removed. Immutable data structures are shaped by trade-offs like any other design. |