public virtual Program VisitProgram(Program node) { Contract.Requires(node != null); Contract.Ensures(Contract.Result<Program>() != null); var decls = node.TopLevelDeclarations.ToList(); node.ClearTopLevelDeclarations(); node.AddTopLevelDeclarations(this.VisitDeclarationList(decls)); return node; }