| embed | Package embed provides access to files embedded in the running Go program. |
| fmt | Package fmt implements formatted I/O with functions analogous to C's printf and scanf. |
| go/ast | Package ast declares the types used to represent syntax trees for Go packages. |
| go/token | Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). |
| go/types | Package types declares the data types and implements the algorithms for type-checking of Go packages. |
| golang.org/x/tools/go/analysis | Package analysis defines the interface between a modular static analysis and an analysis driver program. |
| golang.org/x/tools/go/analysis/passes/inspect | Package inspect defines an Analyzer that provides an AST inspector (golang.org/x/tools/go/ast/inspector.Inspector) for the syntax trees of a package. |
| golang.org/x/tools/go/analysis/passes/internal/analysisutil | |
| golang.org/x/tools/go/ast/inspector | Package inspector provides helper functions for traversal over the syntax trees of a package, including node filtering by type, and materialization of the traversal stack. |
| golang.org/x/tools/go/types/typeutil | Package typeutil defines various utilities for types, such as Map, a hash table that maps types.Type to any value. |
| golang.org/x/tools/internal/analysisinternal | |
| golang.org/x/tools/internal/typesinternal | Package typesinternal provides helpful operators for dealing with go/types: |
| slices | Package slices defines various functions useful with slices of any type. |