Revised is a wrapper struct for efficiently tracking the RevisionHash of
a desired type T. The RevisionHash is computed lazily and is only
recomputed when the object has been accessed mutably. This is achieved
transparently using the Deref and DerefMut traits such that Revised
behaves in code just like a plain old T, except that computing its
RevisionHash is optimized to avoid redundant recursions through all its
contents to compute hash values, at the cost of a little extra storage.
Revised property is the cached result of a function call that is only
evaluated lazily whenever the inputs have changed, according to their
RevisionHash.
RevisionHash is an integer summary of the contents of a data structure,
based on hashing, intended to be used in distinguishing whether data
structures have changed or not.
Revisable is a trait for types for which a RevisionHash can be computed.
Something that implements Revisable can have changes to its contents
tracked by watching its RevisionHash alone.