Tail call optimization is more than optimized tail recursion.
Recur provides an explicit form of support for the latter, but not the former.
Recur provides an explicit form of support for the latter, but not the former.
Clojure Conj 2012: http://youtu.be/RLqqGSthmC0
The grandparent commenter did say "Corecursion could (if awkwardly) be converted into ordinary recursion", which I would say is technically correct, which some say is the best kind of correct. (Perhaps he has a somewhat less awkward scheme in mind.)