docs: public Runnable concat(Runnable... runnables)
      {
          if (runnables.length == 0)
          {
              throw new IllegalArgumentException("empty");
          }
          Runnable r = runnables[runnables.length-1];
          for (int ii=runnables.length-2;ii>=0;ii--)
          {
              r = concat(runnables[ii], r);
          }
          return r;
      }