@Override
  public ASTNode addInternal(ASTNode first, ASTNode last, ASTNode anchor, Boolean before) {
    if (first == last && first.getPsi() instanceof GrTypeElement) {
      if (anchor == null) {
        anchor = getLastChild().getNode();
        before = true;
      }
      if (getTypeArgumentElements().length > 0) {
        if (before == null || before.booleanValue()) {
          getNode().addLeaf(GroovyTokenTypes.mCOMMA, ",", anchor);
        }
        else {
          getNode().addLeaf(GroovyTokenTypes.mCOMMA, ",", anchor.getTreeNext());
        }
      }

      return super.addInternal(first, last, anchor, before);
    }

    else {
      return super.addInternal(first, last, anchor, before);
    }
  }
@Override
  public ASTNode addInternal(ASTNode first, ASTNode last, ASTNode anchor, Boolean before)