<<Hmm. I can't imagine what is there that is inherently cyclic, but breaking the cycles might be more painful than it's worth, so I'll take your word for it. >> Indeed it may be perfectly acceptable to simply ignore the cycles, garbage collection is not a functional requirement here, just a space optimization.