docs: def is_base_and_derived(based, derived):
      """returns True, if there is "base and derived" relationship between
      classes, False otherwise"""
      assert isinstance(based, class_declaration.class_t)
      assert isinstance(derived, (class_declaration.class_t, tuple))
  
      if isinstance(derived, class_declaration.class_t):
          all_derived = ([derived])
      else:  # tuple
          all_derived = derived
  
      for derived_cls in all_derived:
          for base_desc in derived_cls.recursive_bases:
              if base_desc.related_class == based:
                  return True
      return False