def METHOD_NAME(self, wrapped_cls: type) -> type:
    from strawberry.annotation import StrawberryAnnotation
    passed_types = wrapped_cls.__args__  # type: ignore
    params = wrapped_cls.__origin__.__parameters__  # type: ignore
    # Make sure all passed_types are turned into StrawberryTypes
    resolved_types = []
    for passed_type in passed_types:
        resolved_type = StrawberryAnnotation(passed_type).resolve()
        resolved_types.append(resolved_type)
    type_var_map = dict(zip((param.__name__ for param in params), resolved_types))
    return self.copy_with(type_var_map)