function doSeries(fn) {
    return function (obj, iteratee, callback) {
        return fn(eachOfSeries, obj, iteratee, callback);
    };
}
Applies `iteratee` to each item in `coll`, concatenating the results. Returns
the concatenated list. The `iteratee`s are called in parallel, and the
results are concatenated as they return. There is no guarantee that the
results array will be returned in the original order of `coll` passed to the
`iteratee` function.

@name concat
@static
@memberOf module:Collections
@method
@category Collection
@param {Array|Iterable|Object} coll - A collection to iterate over.
@param {Function} iteratee - A function to apply to each item in `coll`.
The iteratee is passed a `callback(err, results)` which must be called once
it has completed with an error (which can be `null`) and an array of results.
Invoked with (item, callback).
@param {Function} [callback(err)] - A callback which is called after all the
`iteratee` functions have finished, or an error occurs. Results is an array
containing the concatenated results of the `iteratee` function. Invoked with
(err, results).
@example

async.concat(['dir1','dir2','dir3'], fs.readdir, function(err, files) {
    // files is now a list of filenames that exist in the 3 directories
});