Its certainly not infinite recursion. Its just deep. Which is fine, I don't care about warnings. On some cases it hits deep recursion and ends up resolving just fine. Its just that on other inputs it first hits deep recursion and THEN hits "Out of memory!".
Re^2: Eliminating Recursive Tree Walking by using MJD-style Infinite Streams?