static <A> L<A> pcallFParallel(F0<A>... functions) { ret pcallFParallel(asList(functions)); } static <A> L<A> pcallFParallel(L<F0<A>> functions) { int n = l(functions); L<A> outInner = repNull(n); final L<A> out = synchroList(outInner); new L<Steppable> steppables; for i to n: { final F0<A> f = functions.get(i); final int _i = i; steppables.add(new Steppable { public bool step() { out.set(_i, pcallF(f)); false; } }); } new Flag done; new MultiThreadStepper(steppables).onDone(rRaiseFlag(done)).start(); done.waitUntilUp(); ret outInner; }