Circular references like that are called "recursive types" in formal type theory. They are one of those big issues that academics like to write papers about.
Even if you just want to write a practical interpreter, and choose to gloss over the issues, they will still come back in some disguised form and either by requiring some sort of implementation kludge, or just by creating weird edge cases.
It does seem a little embarrassing that the annotations don't even support circular references.