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.

foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a ByteString, reduces the ByteString using the binary operator, from left to right.

foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a ByteString, reduces the ByteString using the binary operator, from left to right.

foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a ByteString, reduces the ByteString using the binary operator, from left to right.
This function is subject to array fusion.

This library provides strict left folds that stream in constant memory, and you can combine folds using Applicative style to derive new folds. Derived folds still traverse the container just once and are often as efficient as hand-written folds.
Version 1.0.0

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.

'foldl\'' is like foldl, but strict in the accumulator.

'foldl\'' is like foldl, but strict in the accumulator.

'foldl\'' is like foldl, but strict in the accumulator. However, for ByteStrings, all left folds are strict in the accumulator.

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

foldl1 is a variant of foldl that has no starting value argument, and thus must be applied to non-empty ByteStrings. This function is subject to array fusion.

foldl1 is a variant of foldl that has no starting value argument, and thus must be applied to non-empty ByteStrings. This function is subject to array fusion. An exception will be thrown in the case of an empty ByteString.

'foldl1\'' is like foldl1, but strict in the accumulator.

A strict version of foldl1

'foldl1\'' is like foldl1, but strict in the accumulator.

'foldl1\'' is like foldl1, but strict in the accumulator. An exception will be thrown in the case of an empty ByteString.

Consume the chunks of a lazy ByteString with a strict, tail-recursive, accumulating left fold.

Consume the chunks of a lazy Text with a strict, tail-recursive, accumulating left fold.

foldlWithIndex is a version of foldl that also provides access to the index of each element.

g**foldl** :: Data a => (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> a -> c a

g**foldl**Accum :: Data d => (forall e r. Data e => a -> c (e -> r) -> e -> (a, c r)) -> (forall g. a -> g -> (a, c g)) -> a -> d -> (a, c d)

gfoldl with accumulation