On safe backlinks

If safe backlinks existed, how would a Drop impl for a tree look like? You'd have to pick some node destruction order, breadth-first, depth-first, postorder, whatever. In any case, once a node is destroyed you'd have dangling references to it, either forward links or backlinks.

So there seems to be two possibilities. Either your backlinks aren't directly dereferenceable, in which case you should call a method like .upgrade() and handle the possibility of a stale link (which is exactly the case with Rc today, and you don't like it). Or the compiler should be able to invalidate backlinks at compile time, without relying on any extra data, such as drop flags. I have honestly no idea how the latter option could work, it seems impossible.