code: public MethodHandle permuteWith(MethodHandle target, String... permuteArgs) {
          return MethodHandles.permuteArguments(target, methodType, to(permute(permuteArgs)));
      }
docs: Produce a method handle permuting the arguments in this signature using
  the given permute arguments and targeting the given java.lang.invoke.MethodHandle.
  
  Example:
  
  <pre>
  Signature sig = Signature.returning(String.class).appendArg("a", int.class).appendArg("b", int.class);
  MethodHandle handle = handleThatTakesOneInt();
  MethodHandle newHandle = sig.permuteTo(handle, "b");
  </pre>
  
  @param target      the method handle to target
  @param permuteArgs the arguments to permute
  @return a new handle that permutes appropriate positions based on the
  given permute args