[Haskell] Adjoint Folds and Unfolds Or: Scything through the Thicket of Morphisms