from typing import Callable
from typing import Any
from typing import Iterable
from functools import reduce


def foldl(func: Callable[[Any, Any], Any], it: Iterable[Any]):
    """
    Left-fold iterable object

    Args:
        func: Two arguments function
        it: Iterable object

    Examples:
        >>> fpsm.foldl(lambda x, y: x + y, range(11))
        55
    """
    return reduce(func, it, 0)