code: public function filter(ServiceDefinition $input) : bool
      {
          if (empty($this->type)) {
  //            var_dump('type is empty');
              return false;
          }
  
          // Is it the exact same class.
          // This check can be handy for non-existing classes that are still to be generated by a code-generator e.g. Storage
          if (Util::isSameFqcn($input->getClass(), $this->type)) {
              return true;
          }
  
          if (false === class_exists($this->type) && false === interface_exists($this->type)) {
  //            var_dump('type does not exist ' . $this->type);
              return false;
          }
  
          if (false === class_exists($input->getClass()) && false === interface_exists($input->getClass())) {
              return false;
          }
  
          return is_a($input->getClass(), $this->type, true);
      }
docs: @param ServiceDefinition $input
  
  @return bool