code: function createCurry(func, bitmask, arity) {
        var Ctor = createCtor(func);
  
        function wrapper() {
          var length = arguments.length,
              args = Array(length),
              index = length,
              placeholder = getHolder(wrapper);
  
          while (index--) {
            args[index] = arguments[index];
          }
          var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)
            ? []
            : replaceHolders(args, placeholder);
  
          length -= holders.length;
          if (length < arity) {
            return createRecurry(
              func, bitmask, createHybrid, wrapper.placeholder, undefined$1,
              args, holders, undefined$1, undefined$1, arity - length);
          }
          var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;
          return apply(fn, this, args);
        }
        return wrapper;
      }
docs: Creates a function that wraps `func` to enable currying.
  
  @private
  @param {Function} func The function to wrap.
  @param {number} bitmask The bitmask flags. See `createWrap` for more details.
  @param {number} arity The arity of `func`.
  @returns {Function} Returns the new wrapped function.