>>> from Redy.Collections import Traversal, Flow
    >>> lst: Iterable[int] = [1, 2, 3]
    >>> def action(x: int) -> None: print(x)
    >>> x = Flow(lst)[Traversal.each_do(action)]
    >>> assert x.unbox is None

def each_do(action: Callable[[T], None]):
    """
    >>> from Redy.Collections import Traversal, Flow
    >>> lst: Iterable[int] = [1, 2, 3]
    >>> def action(x: int) -> None: print(x)
    >>> x = Flow(lst)[Traversal.each_do(action)]
    >>> assert x.unbox is None
    """

    def inner(collection: ActualIterable[T]):
        for each in collection:
            action(each)

    return inner