docs: function partial (fn) {
      var args = Array.prototype.slice.call(arguments, 1)
      return function () {
        var arg = 0
        for (var i = 0; i < args.length && arg < arguments.length; i++) {
          if (args[i] === undefined) args[i] = arguments[arg++]
        }
        return fn.apply(this, args)
      }
    }