@Override
 @SuppressWarnings("unchecked")
 public ASTTypeArgumentsList clone() {
   ASTTypeArgumentsList ret = new ASTTypeArgumentsList();
   ret.setList((ArrayList<ASTTypeArguments>) list.clone());
   return ret;
 }
 public ASTTypeArgumentsList deepClone() {
   ASTTypeArgumentsList result = new ASTTypeArgumentsList();
   if (list.size() != 0) {
     Iterator<ASTTypeArguments> iter = iterator();
     while (iter.hasNext()) {
       result.add((ASTTypeArguments) iter.next().deepClone());
     }
   }
   for (de.monticore.ast.Comment x : get_PreComments()) {
     result.get_PreComments().add(new de.monticore.ast.Comment(x.getText()));
   }
   for (de.monticore.ast.Comment x : get_PostComments()) {
     result.get_PostComments().add(new de.monticore.ast.Comment(x.getText()));
   }
   return result;
 }
 public boolean equalsWithComments(Object o) {
   ASTTypeArgumentsList comp;
   if ((o instanceof ASTTypeArgumentsList)) {
     comp = (ASTTypeArgumentsList) o;
   } else {
     return false;
   }
   if (this.size() == comp.size()) {
     java.util.Iterator<ASTTypeArguments> one = this.iterator();
     java.util.Iterator<ASTTypeArguments> two = comp.iterator();
     while (one.hasNext()) {
       if (!one.next().equalsWithComments(two.next())) {
         return false;
       }
     }
   } else {
     return false;
   }
   return true;
 }
 public boolean deepEqualsWithComments(Object o, boolean forceSameOrder) {
   ASTTypeArgumentsList comp;
   if ((o instanceof ASTTypeArgumentsList)) {
     comp = (ASTTypeArgumentsList) o;
   } else {
     return false;
   }
   if (this.size() == comp.size()) {
     if (forceSameOrder) {
       java.util.Iterator<ASTTypeArguments> one = this.iterator();
       while (one.hasNext()) {
         ASTTypeArguments oneNext = one.next();
         boolean matchFound = false;
         java.util.Iterator<ASTTypeArguments> two = comp.iterator();
         while (two.hasNext()) {
           if (oneNext.deepEqualsWithComments(two.next(), forceSameOrder)) {
             matchFound = true;
             break;
           }
         }
         if (!matchFound) {
           return false;
         }
       }
     } else {
       java.util.Iterator<ASTTypeArguments> one = this.iterator();
       java.util.Iterator<ASTTypeArguments> two = comp.iterator();
       while (one.hasNext()) {
         if (!one.next().deepEqualsWithComments(two.next(), forceSameOrder)) {
           return false;
         }
       }
     }
   } else {
     return false;
   }
   return true;
 }
 public boolean equals(ASTTypeArgumentsList o) {
   return list.equals(o.getList());
 }
 public void add(ASTTypeArguments o) {
   it.add(o);
   if (!t.is_Existent()) t.set_Existent(true);
 }