The "Recursive types and folds" series

In this series, we'll look at recursive types and how to use them, and on the way, we'll look at catamorphisms, tail recursion, the difference between left and right folds, and more.

Don't fear the catamorphism...
Applying the rules to other domains
Threading state through a recursive data structure
Recursion vs. iteration
Implementing a domain in three ways
Examples using databases, JSON and error handling