code: public List<Runner> runners(Class<?> parent, Class<?>[] children)
              throws InitializationError {
          addParent(parent);
  
          try {
              return runners(children);
          } finally {
              removeParent(parent);
          }
      }
docs: Constructs and returns a list of Runners, one for each child class in
  {@code children}.  Care is taken to avoid infinite recursion:
  this builder will throw an exception if it is requested for another
  runner for {@code parent} before this call completes.