The way we get the root node right now is not entirely accurate. We will probably need to do something smarter than ref counting.
There are occasional cycles that mean that a particular call stack can be expanded out forever. We should probably figure out how to detect and disconnect them.