anchor.diff:    }
   
     visitLiteralString(LiteralString node) {
  -    openAndCloseNode("LiteralString", {"value" : node.token.slowToString()});
  +    openAndCloseNode(node, "LiteralString",
  +        {"value" : node.token.slowToString()});
     }
   
     visitModifiers(Modifiers node) {
  
positive.code:   }
  
    openSendNodeWithFields(Send node, String type) {
      openNode(type, {
          "isPrefix" : "${node.isPrefix}",
          "isPostfix" : "${node.isPostfix}",
          "isIndex" : "${node.isIndex}",
          "beginToken" : tokenToStringOrNull(node.getBeginToken()),
          "endToken" : tokenToStringOrNull(node.getEndToken())
      });
      visitWithPrefix(node.receiver, "receiver:");
      visitWithPrefix(node.selector, "selector:");
  
negative.code:     visitWithPrefix(node.parameters, "parameters:");
      visitWithPrefix(node.initializers, "initializers:");
      visitWithPrefix(node.body, "body:");
      closeNode();
    }
  
    visitIdentifier(Identifier node) {
      openAndCloseNode(node, "Identifier", {"token" : node.token.slowToString()});
    }
  
    visitIf(If node) {
  