from typing import Iterator, List, Set, TypeVar from collections import Mapping _T = TypeVar('_T') _KT = TypeVar('_KT') _VT = TypeVar('_VT') class LazyDict(Mapping[_KT, _VT]): def __getitem__(self, key: _KT) -> _VT: ... def __iter__(self) -> Iterator[_KT]: ... def __len__(self) -> int: ... class LazyList(List[_T]): ... class LazySet(Set[_T]): ...