clean = function clean(data, p) {
      if (p === void 0) {
        p = [];
      }

      if (data instanceof _monkey.Monkey) {
        data.release();
        (0, _update2["default"])(_this2._monkeys, p, {
          type: 'unset'
        }, {
          immutable: false,
          persistent: false,
          pure: false
        });
        return;
      }

      if (_type["default"].object(data)) {
        for (var k in data) {
          clean(data[k], p.concat(k));
        }
      }
    }
Internal method used to refresh the tree's monkey register on every
update.
Note 1) For the time being, placing monkeys beneath array nodes is not
allowed for performance reasons.

@param  {mixed}   node      - The starting node.
@param  {array}   path      - The starting node's path.
@param  {string}  operation - The operation that lead to a refreshment.
@return {Baobab}            - The tree instance for chaining purposes.