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

    foldl1 is a variant of foldl that has no starting value argument, and thus
    must be applied to non-empty lists.
    """
    return foldl(f, xs[0], xs[1:])
dataset/ETHPy150Open billpmurphy/hask/hask/Data/List.py/foldl1/original