code: public static NodeImpl setTypeParameter(final NodeImpl node, final Class<?> containerClass,
        final Integer typeArgumentIndex) {
      return new NodeImpl( //
          node.name, //
          node.parent, //
          node.isIterableValue, //
          node.index, //
          node.key, //
          node.kind, //
          node.parameterTypes, //
          node.parameterIndex, //
          node.value, //
          containerClass, //
          typeArgumentIndex //
      );
    }
docs: set type parameter to a copied node.
  
  @param node node to build
  @param containerClass container class to set
  @param typeArgumentIndex type argument index to set
  @return new created node implementation