// Visit visits all the packages in the import graph whose roots are // pkgs, calling the optional pre function the first time each package // is encountered (preorder), and the optional post function after a // package's dependencies have been visited (postorder). // The boolean result of pre(pkg) determines whether // the imports of package pkg are visited. func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { … } // PrintErrors prints to os.Stderr the accumulated errors of all // packages in the import graph rooted at pkgs, dependencies first. // PrintErrors returns the number of errors printed. func PrintErrors(pkgs []*Package) int { … }