code: function extendNativeTypes() {
      extendIterablePrototype(Array.prototype, ["concat", "forEach", "indexOf", "join", "lastIndexOf", "reverse"]);
      const originalJoin = Array.prototype.join;
      Array.prototype.join = function (...args) {
          if (args.length == 4 || args.length == 5) {
              let collection = exports.Collection.from(this);
              return collection.join.call(collection, ...args);
          }
          return originalJoin.call(this, ...args);
      };
      const originalIndexOf = Array.prototype.indexOf;
      Array.prototype.indexOf = function (...args) {
          if (args.length == 2 && __isFunction(args[1])) {
              let collection = exports.Collection.from(this);
              return collection.indexOf.call(collection, ...args);
          }
          return originalIndexOf.call(this, ...args);
      };
      const originalLastIndexOf = Array.prototype.lastIndexOf;
      Array.prototype.lastIndexOf = function (...args) {
          if (args.length == 2 && __isFunction(args[1])) {
              let collection = exports.Collection.from(this);
              return collection.lastIndexOf.call(collection, ...args);
          }
          return originalLastIndexOf.call(this, ...args);
      };
      extendIterablePrototype(Map.prototype, ["add", "forEach"]);
      extendIterablePrototype(Set.prototype, ["add", "forEach"]);
  }
docs: Extends the native collections to have quick access to all collection methods.
  
  This method extends the prototypes of Array, Map and Set.
  
  @see {@link extendIterablePrototype} to extend custom iterables.