anchor.diff:      out.write(") {\n", 2);
       node.body.accept(this);
       out.write("}\n", -2);
  -    return node;
  -  }
  -
  -  AstNode visitSimpleIdentifier(SimpleIdentifier node) {
  +  }
  +
  +  void visitSimpleIdentifier(SimpleIdentifier node) {
       out.write(node.name);
  -    return node;
  -  }
  -
  -  AstNode visitExpressionFunctionBody(ExpressionFunctionBody node) {
  +  }
  +
  +  void visitExpressionFunctionBody(ExpressionFunctionBody node) {
       out.write("return ");
       // TODO(vsm): Check for conversion.
       node.expression.accept(this);
       out.write(";\n");
  -    return node;
  -  }
  -
  -  AstNode visitMethodInvocation(MethodInvocation node) {
  +  }
  +
  +  void visitMethodInvocation(MethodInvocation node) {
       // TODO(vsm): Check dynamic.
       writeQualifiedName(node.target, node.methodName);
       out.write('(');
       node.argumentList.accept(this);
       out.write(')');
  -    return node;
  -  }
  -
  -  AstNode visitArgumentList(ArgumentList node) {
  +  }
  +
  +  void visitArgumentList(ArgumentList node) {
       // TODO(vsm): Optional parameters.
       var arguments = node.arguments;
       var length = arguments.length;
  
positive.code: 
    bool isPublic(String name) => !name.startsWith('_');
  
    visitFunctionTypeAlias(FunctionTypeAlias node) {
      // TODO(vsm): Do we need to record type info the generated code for a
      // typedef?
      return node;
    }
  
    void generateInitializer(
  
negative.code: """, -2);
      if (isPublic(name)) out.write("$libName.$name = $name;\n");
      out.write("\n");
    }
  
    void visitFunctionDeclaration(FunctionDeclaration node) {
      var name = node.name.name;
      assert(node.parent is CompilationUnit);
      out.write("// Function $name: ${node.element.type}\n");
  