Separation and information hiding
Mutable data structures with embedded addresses (pointers) have proven to be a particularly obstinate obstacle to modularity. The problem is that it is difficult to keep track of aliases, different copies of the same address, and so it is difficult to know when there are no pointers into the internals of a module.