## Exercise 3.28 Define fix f = f (f (...)). I don't see how we can define this, as written, due to the self-application of f; isn't the type infinite? TODO: Look at Meijer & Hutton, _Bananas In Space_ and try to figure this out. # 3.4 Origami With Trees: Traversals We’re going to be working with rose trees: data Rose a = Node a (Forest a) type Forest a = List (Rose a) The folds for trees and forests, like the data types, are mutually recursive: foldR ∷ (α → γ → β) → (List β → γ) → Rose α → β foldR f g (Node a ts) = f a (foldF f g ts) foldF ∷ (α → γ → β) → (List β → γ) → Forest α → γ foldF f g ts = g (mapL (foldR f g) ts)