[Haskell-cafe] Typing efficient folds