Perhaps the most important of all, in that it combines guards from
    all the provided "VariableTracker" instances passed in. It visits
    the guards and combines the guards from these onto itself.


It acts as a proxy on behalf of the underlying object, implementing
  methods for the rest of TorchDynamo to get information about the
  tracked object:


"call_method"


"call_function"


"python_type"


"as_proxy"


"is/as_python_proxy"


It stores the variable "source" of type "Source", from
  "torchdynamo/source.py". This source type is a relatively self
  contained class that helps us organize and bookkeep where the
  original source came from, and helps provide convenience methods for
  things like getting the name, and importantly for us, producing
  guards.


And this class ("VariableTracker") is built around subclassing,
somewhere between a full Abstract Base Class and fully fleshed out
class - it leaves many methods raising "NotImplementedError" - with