I'm trying to understand the difference between: from typing import Iterable def func(self, stuff: Iterable[str]) -> str: and: def func(self, stuff: [str]) -> str: Are both statements valid? Do they give the same information to Python (3.12+) interpreter? Continue reading...