code: public Signature prependArg(String name, Class<?> type) {
          String[] newArgNames = new String[argNames.length + 1];
          System.arraycopy(argNames, 0, newArgNames, 1, argNames.length);
          newArgNames[0] = name;
          MethodType newMethodType = methodType.insertParameterTypes(0, type);
          return new Signature(newMethodType, newArgNames);
      }
docs: Prepend an argument (name + type) to the signature.
  
  @param name the name of the argument
  @param type the type of the argument
  @return a new signature with the added arguments