recursion-schemes
provides templates which generalize structures shared by recursive algorithms over inductive types.
Here is a curation of resources pertaining to recursion schemes in theory and practice: Awesome Recursion Schemes
Here is my solution to Exercism’s Food Chain problem using a zygomorphism, which generalizes a certain form of mutual recursion wherein the recursive step depends on an auxiliary function.