code: def all_slots_for(self, cls: ClassDefinition) -> List[SlotDefinitionName]:
          
          if not cls.is_a:
              return cls.slots
          else:
              return [sn for sn in self.all_slots_for(self.schema.classes[cls.is_a]) if sn not in cls.slot_usage] \
                     + cls.slots
docs: Return all slots for class cls