Every time I spend a lot of thought on a problem I always go back to F-Algebras and F-CoAlgebras.
Most recursion is through fold and unfold