import typing


def find_all(iterable: typing.Iterable, predicate: typing.Callable) -> typing.List[typing.Any]:
    """
    A helper that returns all elements in the iterable that meet the
    predicate.

    If nothing is found that meets the predicate, then an empty list is
    returned.

    Parameters
    ----------
    iterable
        An iterable to search through.
    predicate
        A callable which takes one parameter and returns a boolean.

    Returns
    -------
    List[Any]
        The elements that met the predicate.
    """

    l = list()

    for (i) in iterable:
        if predicate(i):
            l.append(i)

    return l