query = (...extra) => {
      if (this.state !== state) {
        state = this.state

        let next = extract(state, keyPaths, subset)

        if (next !== subset) {
          subset = next

          answer = processors.reduce((value, fn) => {
            return fn.call(this, value, state)
          }, subset)
        }
      }

      return extra.reduce((value, fn) => {
        return fn.call(this, value, state)
      }, answer)
    }
Memoize a computation of a fragment of application state.
This may be referenced when computing properties or querying
state within Presenters.