code: public static TypeDeclarationNode parameterizedType(
        TypeDeclarationNode baseType, Iterable<TypeDeclarationNode> typeParameters) {
      if (Iterables.isEmpty(typeParameters)) {
        return baseType;
      }
      TypeDeclarationNode node = new TypeDeclarationNode(Token.PARAMETERIZED_TYPE, baseType);
      for (Node typeParameter : typeParameters) {
        node.addChildToBack(typeParameter);
      }
      return node;
    }
docs: Represents a parameterized, or generic, type.
  Closure calls this a Type Application and accepts syntax like
  {@code {Object.<string, number>}}
  
  <p>Example:
  <pre>
  PARAMETERIZED_TYPE
  NAMED_TYPE
  NAME Object
  STRING_TYPE
  NUMBER_TYPE
  </pre>
  @param baseType
  @param typeParameters