docs: function extendNativeTypes() {
          extendIterablePrototype(Array.prototype, ["concat", "forEach", "indexOf", "join", "lastIndexOf", "reverse"]);
          var originalJoin = Array.prototype.join;
          Array.prototype.join = function () {
              for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
                  args[_key3] = arguments[_key3];
              }
  
              if (args.length == 4 || args.length == 5) {
                  var _collection$join;
  
                  var collection = Collection.from(this);
                  return (_collection$join = collection.join).call.apply(_collection$join, [collection].concat(args));
              }
              return originalJoin.call.apply(originalJoin, [this].concat(args));
          };
          var originalIndexOf = Array.prototype.indexOf;
          Array.prototype.indexOf = function () {
              for (var _len3 = arguments.length, args = Array(_len3), _key4 = 0; _key4 < _len3; _key4++) {
                  args[_key4] = arguments[_key4];
              }
  
              if (args.length == 2 && __isFunction(args[1])) {
                  var _collection$indexOf;
  
                  var collection = Collection.from(this);
                  return (_collection$indexOf = collection.indexOf).call.apply(_collection$indexOf, [collection].concat(args));
              }
              return originalIndexOf.call.apply(originalIndexOf, [this].concat(args));
          };
          var originalLastIndexOf = Array.prototype.lastIndexOf;
          Array.prototype.lastIndexOf = function () {
              for (var _len4 = arguments.length, args = Array(_len4), _key5 = 0; _key5 < _len4; _key5++) {
                  args[_key5] = arguments[_key5];
              }
  
              if (args.length == 2 && __isFunction(args[1])) {
                  var _collection$lastIndex;
  
                  var collection = Collection.from(this);
                  return (_collection$lastIndex = collection.lastIndexOf).call.apply(_collection$lastIndex, [collection].concat(args));
              }
              return originalLastIndexOf.call.apply(originalLastIndexOf, [this].concat(args));
          };
          extendIterablePrototype(Map.prototype, ["add", "forEach"]);
          extendIterablePrototype(Set.prototype, ["add", "forEach"]);
      }