code: public Signature dropArg(int index) {
          assert index < argNames.length;
  
          String[] newArgNames = new String[argNames.length - 1];
          if (index > 0) System.arraycopy(argNames, 0, newArgNames, 0, index);
          if (index < argNames.length - 1)
              System.arraycopy(argNames, index + 1, newArgNames, index, argNames.length - (index + 1));
  
          MethodType newType = methodType.dropParameterTypes(index, index + 1);
  
          return new Signature(newType, newArgNames);
      }
docs: Drops the argument at the given index.
  
  @param index the index of the argument to drop
  @return a new signature