See TailRecursion.