[Haskell-cafe] Help me understand general recursion from cata- and anamorphism