Folding and Monoid
Folding in lists and its significance
`foldr` specifying the binary associative operation explicitly
`foldr` (right fold) and `foldl` (left fold) in lists
How to write folds
Catamorphisms as the generalization of folds
How `foldl` associates
How `foldr` associates
`foldl` implementation
`foldr` implementation
The “rest of the fold” in `foldr`
Folding as a two-stage process (traversal and folding)
Example of folding usage (Source: https://hackage.haskell.org/package/recursion-schemes-5.2.3#readme)