public boolean removeArg(final BOp arg){
  if (arg == null)   throw new IllegalArgumentException();
  if (arg == this)   throw new IllegalArgumentException();
  if (args.remove(arg)) {
    mutation();
    return true;
  }
  return false;
}

public boolean removeArg ( final BOp arg ) { if ( arg == null ) throw new IllegalArgumentException ( ) ; if ( arg == this ) throw new IllegalArgumentException ( ) ; if ( args . remove ( arg ) ) { mutation ( ) ; return true ; } return false ; }
remove the 1st occurrence of the argument ( core mutation method ) .
