public virtual ATermList removeAll(ATerm el) { if (first == el) { return(next.removeAll(el)); } ATermList result = next.removeAll(el); if (result == next) { return(this); } return(result.insert((ATerm)first)); }