**Packages**- containers
- base

foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right:
> foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn
The list must be finite.

foldl1 is a variant of foldl that has no starting value argument, and thus must be applied to non-empty lists.

A strict version of foldl.

Fold over the elements of a structure, associating to the left, but strictly.

A strict version of foldl1

Monadic fold over the elements of a structure, associating to the left, i.e. from left to right.