Not sure how the tuple `__bases__` is ordered, but I think there's no guarantee `[0]` will stay the same throughout the inheritance chain. Maybe `__mro__`?