docs: function ProtoSet (defaultValues, opts) {
    var self = this
    self.object = []
    self.sources = []
    self.releases = []
    self.binder = LazyWatcher.call(self, self._update, self._listen, self._unlisten)
    self.binder.value = this.object
  
    if (opts && opts.nextTick) self.binder.nextTick = true
    if (opts && opts.idle) self.binder.idle = true
  
    if (defaultValues && defaultValues.length) {
      defaultValues.forEach(function (valueOrObs) {
        if (!~self.sources.indexOf(valueOrObs)) {
          self.sources.push(valueOrObs)
        }
      })
      this._update()
    }
  }