code: TemplateTypeMap remove(Set<TemplateType> toRemove) {
      ImmutableList.Builder<TemplateType> keys = ImmutableList.builder();
      keys.addAll(templateKeys.subList(0, templateValues.size()));
      for (int i = templateValues.size(); i < templateKeys.size(); i++) {
        TemplateType key = templateKeys.get(i);
        if (!toRemove.contains(key)) {
          keys.add(key);
        }
      }
      return registry.createTemplateTypeMap(keys.build(), templateValues);
    }
docs: Returns a new TemplateTypeMap with the given template types removed. Keys will only be removed
  if they are unmapped.