with-package-iterator
(with-package-iterator (name package-list symbol-type...) body...)
Binds name to a LOCAL FUNCTION (an flet, not CL's macrolet) that walks the symbols of the packages in package-list (a designator or a list of them) whose accessibility is one of the symbol-types (:internal, :external, :inherited; at least one, or a program-error): each call answers four values -- t, the symbol, its status and its package -- and nil once the walk is over. The package-list form is evaluated once, and the walk is the same set do-symbols visits, so every symbol it hands out is what find-symbol answers for its name in that package.