anchor.diff:      endLine('"${escapeString(node.value)}"');
     }
   
  -  visitUnevaluatedConstant(UnevaluatedConstant node) {
  +  visitTearOffConstant(TearOffConstant node) {
       writeIndentation();
       writeConstantReference(node);
       writeSpaced('=');
  -    writeSymbol('(');
  +    writeWord('tearoff');
  +    writeSpace();
  +    writeMemberReferenceFromReference(node.procedureReference);
  +    endLine();
  +  }
  +
  +  visitUnevaluatedConstant(UnevaluatedConstant node) {
  +    writeIndentation();
  +    writeConstantReference(node);
  +    writeSpaced('=');
  +    writeSymbol('eval');
  +    writeSpace();
       writeExpression(node.expression);
  -    endLine(')');
  +    endLine();
     }
   
     defaultNode(Node node) {
  
positive.code:     endLine('}');
    }
  
    visitStringConstant(StringConstant node) {
      writeIndentation();
      writeConstantReference(node);
  
negative.code:     writeIndentation();
      writeConstantReference(node);
      writeSpaced('=');
      writeSymbol('<');
      writeType(node.typeArgument);
      writeSymbol('>[');
      writeList(node.entries, writeConstantReference);
      endLine(']');
    }
  
    visitSetConstant(SetConstant node) {
      writeIndentation();
      writeConstantReference(node);
      writeSpaced('=');
      writeSymbol('<');
      writeType(node.typeArgument);
      writeSymbol('>{');
      writeList(node.entries, writeConstantReference);
      endLine('}');
    }
  
    visitMapConstant(MapConstant node) {
      writeIndentation();
      writeConstantReference(node);
      writeSpaced('=');
      writeSymbol('<');
      writeList([node.keyType, node.valueType], writeType);
      writeSymbol('>{');
      writeList(node.entries, (entry) {
        writeConstantReference(entry.key);
        writeSymbol(':');
  