From my point of view and understanding, for is not good for this. Isn't it blocking? Say you have
for
a <- forA
b <- forB
c <- forC(a)
it does not do a and b in parallel and then c, or does it?