compute() {
    let patch = {}
    let dirty = false

    for (var key in this.bindings) {
      var value = invoke(this.bindings[key], this.repo, this.scope)

      if (this.value[key] !== value) {
        patch[key] = value
        dirty = true
      }
    }

    return dirty ? this.publish(patch) : this.value
  }
Run through each invokable binding, recomputing the model
for their associated keys.