def test_revalidation_without_explicit_parametrization() -> None:
    """Note, this is seen in the test above as well, but is added here for thoroughness."""

    T1 = TypeVar('T1', bound=BaseModel)

    class InnerModel(BaseModel, Generic[T1]):
        model: T1

    T2 = TypeVar('T2', bound=InnerModel)

    class OuterModel(BaseModel, Generic[T2]):
        inner: T2

    class MyModel(BaseModel):
        foo: int

    # Construct two instances, with and without generic annotation in the constructor:
    inner1 = InnerModel[MyModel](model=MyModel(foo=42))
    inner2 = InnerModel(model=MyModel(foo=42))
    assert inner1 == inner2

    outer1 = OuterModel[InnerModel[MyModel]](inner=inner1)
    outer2 = OuterModel[InnerModel[MyModel]](inner=inner2)
    # implies that validation succeeds for both
    assert outer1 == outer2
Note, this is seen in the test above as well, but is added here for thoroughness.
tests/test_generics.py