Yeah... it's a 'turtles all the way down' issue, too, in reference-based languages with heavy emphasis on mutation. You basically use a hierarchy of all-immutable types, or make very certain that you are okay with immutable identity, even if the shape of the data is modified.