code: function purge (next, vargs) {
      var downTo, condition, gather, stop, head, iterator, cache, magazine
      if (vargs.length == 0) {
          return new Purge(this, next)
      }
      downTo = vargs.shift()
      if (typeof vargs[0] == 'function') {
          condition = vargs.shift()
      }
      if (Array.isArray(vargs[0])) {
          gather = vargs.shift()
      }
      condition || (condition = function () { return true })
      stop = downTo
      head = this._head
      iterator = head
      if (typeof downTo == 'number') {
          downTo = Math.max(downTo, -1)
          stop = function () { return this.heft <= downTo }.bind(this)
      }
      while (iterator[next] !== head && !stop(iterator[next])) {
          var cartridge = iterator[next]
          if (!cartridge.holds && condition(cartridge)) {
              magazine = cartridge._magazine, cache = magazine._cache
              if (gather) {
                  gather.push(cartridge.value)
              }
              detach(cartridge)
          } else {
              iterator = cartridge
          }
      }
  }
docs: TODO Legacy, do not document, use expire or iterator interface.