@sig(H/ (H/ "b" >> "a" >> "b") >> "a" >> ["a"] >> "b")
def foldl(f, z, xs):
    """
    foldl :: (b -> a -> b) -> b -> [a] -> b

    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. The list must be finite.
    """
    return reduce(f, xs, z)
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/foldl/original