I use the following code to create subclasses of class G and pass them the type of model they should produce. from typing import TypeVar, Type class A: @classmethod def model_validate(cls): print('Done') T = TypeVar('T', bound=A) class G[T]: def __init__(self, model: Type[T]): self.model = model def func(self) -> None: print(self.model.model_validate()) G[A](A).func() This works fine, but mypy gives this error: error: "type[T]" has no attribute "model_validate" [attr-defined] What am i doing wrong? Continue reading...