In the ideal world, systems are designed using immutable data structures. However, when you dive deeper into lower levels of abstractions, you realize that at some point a library written in C is being used to performs some tricks that merge the unmutable with the mutable.
Now, I am not intrested in whether or not I should mutate my data. Instead, how do you design libraries and tools that help merging both, the mutable and unmutable?
For instance, how do you design a system that serves as an interface where work that need mutable behavior for performance reasons can be delegated from the unmutable world?
Is there any book that talks about this?