docs: public T addParams(Iterable<? extends TemplateParam> newParams) {
  
      Set<String> seenParamKeys = new HashSet<>();
      if (this.params == null) {
        this.params = ImmutableList.copyOf(newParams);
      } else {
        for (TemplateParam oldParam : this.params) {
          seenParamKeys.add(oldParam.name());
        }
        this.params =
            ImmutableList.<TemplateParam>builder().addAll(this.params).addAll(newParams).build();
      }
  
      // Check new params.
      for (TemplateParam param : newParams) {
        if (param.name().equals("ij")) {
          errorReporter.report(param.nameLocation(), INVALID_PARAM_NAMED_IJ);
        }
        if (!seenParamKeys.add(param.name())) {
          errorReporter.report(param.nameLocation(), PARAM_ALREADY_DECLARED, param.name());
        }
      }
      return (T) this;
    }