cmap

suspend fun <A, B> Collection<A>.cmap(f: suspend (A) -> B): List<B>(source)

amap with stronger cancellation guarantee, aka will only return when each job is joined