   {
     foreach id_child in [0:N-1]
     {
-      runstage(N, S, this, stage+1, id_child, v);
+      run_stage(N, S, this, stage+1, id_child, v);
     }
   }
 }

// (tested up to S=7, 21,844 dummy tasks)
S = string2int(argv("S", "3"));

(void v) runstage(int N, int S, string parent, int stage, int id, void block)
{
  this = parent+int2string(id);
  v = run_dummy(parent, stage, id, block);


stage = 0;
id = 0;
run_stage(N, S, "", stage, id, propagate());
