code: def add_capability(self, cls):
          
          if _debug: Collector._debug("add_capability %r", cls)
  
          # the new type has everything the current one has plus this new one
          bases = (self.__class__, cls)
          if _debug: Collector._debug("    - bases: %r", bases)
  
          # save this additional class
          self.capabilities.append(cls)
  
          # morph into a new type
          newtype = type(self.__class__.__name__ + '+' + cls.__name__, bases, {})
          self.__class__ = newtype
  
          # allow the new type to init
          if hasattr(cls, '__init__'):
              if _debug: Collector._debug("    - calling %r.__init__", cls)
              cls.__init__(self)
docs: Add a capability to this object.