<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def concatmap(source, func, *more_sources, task_limit=None):
 """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. """

    return concat.raw(
        combine.smap.raw(source, func, *more_sources), task_limit=task_limit)