In reworking some of the support for bytecode-enhanced laziness, I started
thinking deeper about this idea of partial caching of such entities.
First and foremost, why do we even allow this? Essentially what happens is
that we allow a user to partially load an entity, and then stick that
partial state into the cache (along with a boolean indicating that the
state is partial).
I guess I can somewhat see the usefulness of this, but what really gets me
confused is how the caching of this data works.. As far as I can tell, we
never re-cache the entity state after the uninitialized portions have been
initialized. So the cached representation, iiuc, continues to be the
partial representation. If we continue to allow the partial representation
to be cached, wouldn't we want to update the cache entry with the
initialized portions once they become available?