docs: def all_subclasses(cls):
      """Generator yielding all subclasses of `cls` recursively"""
      for subcls in cls.__subclasses__():
          yield subcls
          for subsubcls in all_subclasses(subcls):
              yield subsubcls