さっきの自己参照的構造体をリファクタして簡潔に書いた。