+ /// A set of depth for each frame
+ //
+ /// Access to this container is mutex-protected
+ /// for thread safety. See _frameDepthsMutex.
+ ///
+ FrameDepths _frameDepths;
I think the set of depths for a frame would tell us: characters in
these depths should be kept alive when jump backward and forward. And
the set of depths might be *changed* by tags(eg. REPLACE and PLACE
with ratio bigger than zero) in later frames.
In other words: this set will not only dependent on tags before the
target frame, but also tags *after* the target frame. right?