そうなの?

循環参照の検出はそんなに難しくない。 定番の練習問題だろ。
だけど、実行コストはそれなりに大きいから走査のたびにやるのは性能的に厳しいと思う。
何度かに一度だけとかいった形にする必要があるんで、それを世代ごとに区分するのはいいアイデアな気がする。