code: public Selection add(Selection operand) {
          Function[] fns;
  
          if (operand.isEmpty()) {
              return this;
          } else if (this.isEmpty()) {
              return operand;
          } else {
              fns = new Function[size() + operand.size()];
              System.arraycopy(functions, 0, fns, 0, size());
              System.arraycopy(operand.functions, 0, fns, size(), operand.size());
              return new Selection(fns);
          }
      }
docs: --