tail recursion can eliminate debugging info, make sure we don't crash when it does.:wq