docs: def create_object(self, cls: Type[T], additional_kwargs=None) -> T:
          """Create a new instance, satisfying any dependencies on cls."""
          additional_kwargs = additional_kwargs or {}
          log.debug('%sCreating %r object with %r', self._log_prefix, cls, additional_kwargs)
  
          try:
              instance = cls.__new__(cls)
          except TypeError as e:
              reraise(
                  e,
                  CallError(cls, getattr(cls.__new__, '__func__', cls.__new__), (), {}, e, self._stack),
                  maximum_frames=2,
              )
          try:
              init = cls.__init__
              self.call_with_injection(init, self_=instance, kwargs=additional_kwargs)
          except TypeError as e:
              # The reason why getattr() fallback is used here is that
              # __init__.__func__ apparently doesn't exist for Key-type objects
              reraise(
                  e,
                  CallError(
                      instance,
                      getattr(instance.__init__, '__func__', instance.__init__),
                      (),
                      additional_kwargs,
                      e,
                      self._stack,
                  ),
              )
          return instance