code: protected function moveWatch($fromLiteral, $toLiteral, $node)
      {
          if (!isset($this->watchChains[$toLiteral])) {
              $this->watchChains[$toLiteral] = new RuleWatchChain;
          }
  
          $node->moveWatch($fromLiteral, $toLiteral);
          $this->watchChains[$fromLiteral]->remove();
          $this->watchChains[$toLiteral]->unshift($node);
      }
docs: Moves a rule node from one watch chain to another
  
  The rule node's watched literals are updated accordingly.
  
  @param int           $fromLiteral A literal the node used to watch
  @param int           $toLiteral A literal the node should watch now
  @param RuleWatchNode $node The rule node to be moved