return any node where a name is read but has not been assigned. This is an error which would show when the code is run.
return any name which is used as a function call but has been reassigned.
get the nodes where the symbol is used.
return any node where a variable is assigned but then not later read. This is not an error, but is a nice way to flag suspicious code.