anchor.diff:  
     @override
     void visitGenericFunctionType(GenericFunctionType node) {
  -    safelyVisitNode(node.returnType);
  +    _visitNode(node.returnType);
       sink.write(' Function');
  -    safelyVisitNode(node.typeParameters);
  -    safelyVisitNode(node.parameters);
  +    _visitNode(node.typeParameters);
  +    _visitNode(node.parameters);
       if (node.question != null) {
         sink.write('?');
       }
  
positive.code:         sink.write(node.operator!.lexeme);
        }
      }
      safelyVisitNode(node.methodName);
      safelyVisitNode(node.typeArguments);
      safelyVisitNode(node.argumentList);
    }
  
    @override
    void visitMixinDeclaration(MixinDeclaration node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      sink.write("mixin ");
      safelyVisitNode(node.name);
      safelyVisitNode(node.typeParameters);
      safelyVisitNodeWithPrefix(" ", node.onClause);
      safelyVisitNodeWithPrefix(" ", node.implementsClause);
      sink.write(" {");
      safelyVisitNodeListWithSeparator(node.members, " ");
      sink.write("}");
    }
  
    @override
    void visitNamedExpression(NamedExpression node) {
      safelyVisitNode(node.name);
      safelyVisitNodeWithPrefix(" ", node.expression);
    }
  
    @override
    void visitNativeClause(NativeClause node) {
      sink.write("native ");
      safelyVisitNode(node.name);
    }
  
    @override
    void visitNativeFunctionBody(NativeFunctionBody node) {
      sink.write("native ");
      safelyVisitNode(node.stringLiteral);
      sink.write(';');
    }
  
    @override
    void visitNullLiteral(NullLiteral node) {
      sink.write("null");
    }
  
    @override
    void visitOnClause(OnClause node) {
      sink.write('on ');
      safelyVisitNodeListWithSeparator(node.superclassConstraints, ", ");
    }
  
    @override
    void visitParenthesizedExpression(ParenthesizedExpression node) {
      sink.write('(');
      safelyVisitNode(node.expression);
      sink.write(')');
    }
  
    @override
    void visitPartDirective(PartDirective node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      sink.write("part ");
      safelyVisitNode(node.uri);
      sink.write(';');
    }
  
    @override
    void visitPartOfDirective(PartOfDirective node) {
      safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
      sink.write("part of ");
      safelyVisitNode(node.libraryName);
      safelyVisitNode(node.uri);
      sink.write(';');
    }
  
  
negative.code:   @override
    void visitBlock(Block node) {
      sink.write('{');
      _visitNodeList(node.statements, separator: ' ');
      sink.write('}');
    }
  
  