public boolean retainAll(Collection<?> c) {
   boolean r = false;
   Iterator<?> i = this.iterator();
   while (i.hasNext()) {
     Object o = i.next();
     if (!c.contains(o)) {
       i.remove();
       r = true;
     }
   }
   return r;
 }
 public ASTEnhancedForStatementNoShortIfList deepClone() {
   ASTEnhancedForStatementNoShortIfList result = new ASTEnhancedForStatementNoShortIfList();
   if (list.size() != 0) {
     Iterator<ASTEnhancedForStatementNoShortIf> iter = iterator();
     while (iter.hasNext()) {
       result.add((ASTEnhancedForStatementNoShortIf) 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 ASTUnannClassTypeList deepClone() {
   ASTUnannClassTypeList result = new ASTUnannClassTypeList();
   if (list.size() != 0) {
     Iterator<ASTUnannClassType> iter = iterator();
     while (iter.hasNext()) {
       result.add((ASTUnannClassType) 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 ASTNoptrabstractpackdeclaratorList deepClone() {
   ASTNoptrabstractpackdeclaratorList result = new ASTNoptrabstractpackdeclaratorList();
   if (list.size() != 0) {
     Iterator<ASTNoptrabstractpackdeclarator> iter = iterator();
     while (iter.hasNext()) {
       result.add((ASTNoptrabstractpackdeclarator) 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;
 }