code: public List<List<T>> apply(List<List<T>> selectedCandidates, Random rng)
      {
          List<List<T>> output = new ArrayList<List<T>>(selectedCandidates.size());
          for (List<T> item : selectedCandidates)
          {
              output.add(delegate.apply(item, rng));
          }
          return output;
      }
docs: Applies the configured operator to each list candidate, operating on the elements
  that make up a candidate rather than on the list of candidates.
  candidates and returns the results.
  @param selectedCandidates A list of list candidates.
  @param rng A source of randomness.
  @return The result of applying the configured operator to each element
  in each list candidates.