Improved list fusion by implementing `foldl'` in terms of `foldr`
Added 'FoldM' and 'foldM'