inspect_type_links.first.Foo.Foo class

An inner class in the first module

Referencing self as Foo or Foo.Foo, parent as first.Foo, other as second.Foo. However inside annotations Foo references the parent, consistently in a function and in data? Am I doing something wrong?

Methods

def reference_parent(self, a: first.Foo, b: first.Foo)
A method referencing its parent wrapper class using first.Foo. Foo works too, though. Weird. Displayed as first.Foo.
def reference_self(self, a: Foo, b: Foo)
A method referencing its wrapper class using Foo.Foo or first.Foo.Foo, displayed as Foo in both cases; however using just Foo in the annotation references the parent?!

Data

reference_parent_data: typing.Tuple[first.Foo, first.Foo] = {}
reference_self_data: typing.Tuple[Foo, Foo] = {}