I am aware of PEP-563 but it doesn’t seem possible to define actually circularly dependant types without using a forward reference or other hacks like redeclaration.