docs: def is_local(self):
          """Whether this is a local variable.
  
              In general, a variable is *local* if its containing scope is a
              statement (e.g. a block), or a function, given that the variable
              is not one of the function's parameters.
          """
          return (isinstance(self.scope, CodeStatement)
                  or (isinstance(self.scope, CodeFunction)
                      and self not in self.scope.parameters))