The combined output of a lint pass: a list of Diagnostics and a list
of Symbols.
Diagnostics are always present (possibly empty). Symbols are populated
by backends that can introspect the source structurally; at the time
of writing, only AtpClient.Lint.Local contributes symbols, so
running AtpClient.Lint with backends: [:tptp4x] produces an empty
symbol list.
Summary
Types
@type t() :: %AtpClient.Lint.Report{ diagnostics: [AtpClient.Lint.Diagnostic.t()], symbols: [AtpClient.Lint.Symbol.t()] }