Avoid Persisting Value Collections of Pointers
It may sometimes be reasonable to collect pointers into a value-based collection in order to deal with identities instead of values. However, you should never attempt to persist them, since a collection with value semantics will simply store the values of the pointers into the stream, rather than storing the information. If you were to pull those old pointers out of the stream and back into memory, they would almost surely point to invalid locations.