function overArg(func, transform) {
    return function() {
      var length = arguments.length;
      if (!length) {
        return func();
      }
      var args = Array(length);
      while (length--) {
        args[length] = arguments[length];
      }
      var index = config.rearg ? 0 : (length - 1);
      args[index] = transform(args[index]);
      return func.apply(undefined, args);
    };
  }
Creates a function that invokes `func` with its first argument transformed.

@private
@param {Function} func The function to wrap.
@param {Function} transform The argument transform.
@returns {Function} Returns the new function.