def map(fun: Callable, xs: Iterable):
    """
    Traverse an iterable object applying function `fun`
    to each element and finally creats a workflow from it.

    :param fun:
      function to call in each element of the iterable
      object.
    :param xs:
      Iterable object.

    returns::py:class:`PromisedObject`
    """
    generator = (fun(x) for x in xs)

    return gather(*generator)
Traverse an iterable object applying function `fun`
    to each element and finally creats a workflow from it.

    :param fun:
      function to call in each element of the iterable
      object.
    :param xs:
      Iterable object.

    returns::py:class:`PromisedObject`