code: public function resolveDefinition(IDefinition $definition, $id, array $args = []) {
          if ($definition instanceof WildcardDefinition) {
              $value = $this->getWildcard($definition, $id, $args);
          } else if ($definition instanceof InterfaceDefinition) {
              $value = $this->getInterface($definition, $args);
          } else if ($definition instanceof ClassDefinition) {
              $value = $this->getClass($definition, $args);
          } else {
              $value = $definition->getValue();
          }
  
          return $value;
      }
docs: @param IDefinition $definition
  @param $id
  @param array $args
  
  @return mixed
  @throws TypeMismatchException