function Operator(init, update, params, react) {
    this.id = ++OP_ID;
    this.value = init;
    this.stamp = -1;
    this.rank = -1;
    this.qrank = -1;
    this.flags = 0;
    if (update) {
      this._update = update;
    }
    if (params) this.parameters(params, react);
  }
An Operator is a processing node in a dataflow graph.
Each operator stores a value and an optional value update function.
Operators can accept a hash of named parameters. Parameter values can
either be direct (JavaScript literals, arrays, objects) or indirect
(other operators whose values will be pulled dynamically). Operators
included as parameters will have this operator added as a dependency.
@constructor
@param {*} [init] - The initial value for this operator.
@param {function(object, Pulse)} [update] - An update function. Upon
  evaluation of this operator, the update function will be invoked and the
  return value will be used as the new value of this operator.
@param {object} [params] - The parameters for this operator.
@param {boolean} [react=true] - Flag indicating if this operator should
  listen for changes to upstream operators included as parameters.
@see parameters