<div dir="ltr">Thanks everyone for interesting suggestions!<br><div><br>@Antoine @Guido:<br></div><div>Some of the possible options for the title are:<br></div><div>* Protocols (structural subtyping)<br></div><div>* Protocols (static duck typing)<br></div><div>* Structural subtyping (static duck typing)<br></div><div>which one do you prefer?<br><br></div><div>@Nick:<br></div><div>Yes, explicit imports are not necessary for static type checkers (I will add a short comment about this).<br><br></div><div>@Mark:<br></div><div>I agree with Guido on all points here. For example, collections.abc.Iterable is already a class,<br>and lots of code uses isinstance(obj, collections.abc.Iterable) and similar checks with other ABCs<br>(also in a structural manner, i.e. via __subclasshook__). So that disabling this will case many breakages.<br>The question of whether typing.Iterable[int] should be a class is independent (orthogonal) and<br>does not belong to this PEP.<br><br>--<br></div><div>Ivan<br><br><br></div></div>