code: func Walk(root string, walkFn filepath.WalkFunc) error {
  	info, err := os.Lstat(root)
  	if err != nil {
  		err = walkFn(root, nil, err)
  	} else {
  		err = symwalk(root, info, walkFn)
  	}
  	if err == filepath.SkipDir {
  		return nil
  	}
  	return err
  }
docs: // Walk walks the file tree rooted at root, calling walkFn for each file or directory
  // in the tree, including root. All errors that arise visiting files and directories
  // are filtered by walkFn. The files are walked in lexical order, which makes the
  // output deterministic but means that for very large directories Walk can be
  // inefficient. Walk follows symbolic links.