But now I see, since it has recursion, there are tricks to make it go in an infinite loop.
Thanks for the pointer. I read the rationales again in the doc.