I noticed the types.SimpleNamespace class seems to be recursively implemented. In the types module, the class is defined as type(sys.implementation). However, type(sys.implementation) simply returns types.SimpleNamespace, which wouldn't be possible, since both names rely on each other to be available. How is types.SimpleNamespace actually implemented?