function touch(op, options) {
    const opt = options || NO_OPT;
    if (this._pulse) {
      // if in midst of propagation, add to priority queue
      this._enqueue(op);
    } else {
      // otherwise, queue for next propagation
      this._touched.add(op);
    }
    if (opt.skip) op.skip(true);
    return this;
  }
Touches an operator, scheduling it to be evaluated. If invoked outside of
a pulse propagation, the operator will be evaluated the next time this
dataflow is run. If invoked in the midst of pulse propagation, the operator
will be queued for evaluation if and only if the operator has not yet been
evaluated on the current propagation timestamp.
@param {Operator} op - The operator to touch.
@param {object} [options] - Additional options hash.
@param {boolean} [options.skip] - If true, the operator will
  be skipped: it will not be evaluated, but its dependents will be.
@return {Dataflow}