code: def concatmap(source, func, *more_sources, task_limit=None):
      
      return concat.raw(
          combine.smap.raw(source, func, *more_sources), task_limit=task_limit)
docs: Apply a given function that creates a sequence from the elements of one
      or several asynchronous sequences, and generate the elements of the created
      sequences in order.
  
      The function is applied as described in `map`, and must return an
      asynchronous sequence. The returned sequences are awaited concurrently,
      although it's possible to limit the amount of running sequences using
      the `task_limit` argument.