>>> from Redy.Collections import Traversal, Flow
    >>> lst: Iterable[int] = [1, 2, 3]
    >>> x = Flow(lst)[Traversal.sum_from(0)].unbox
    >>> assert x is 6

    >>> x = Flow(lst)[Traversal.sum_from()].unbox
    >>> assert x is 6

def sum_from(zero: T1 = None) -> Callable[[ActualIterable[T1]], T1]:
    """
    >>> from Redy.Collections import Traversal, Flow
    >>> lst: Iterable[int] = [1, 2, 3]
    >>> x = Flow(lst)[Traversal.sum_from(0)].unbox
    >>> assert x is 6

    >>> x = Flow(lst)[Traversal.sum_from()].unbox
    >>> assert x is 6
    """

    def _(collection: Iterable[T1]) -> T1:
        if zero is None:
            collection = iter(collection)
            _zero = next(collection)
            return builtins.sum(collection, _zero)

        return builtins.sum(collection, zero)

    return _