>>58
言わんとするところは理解できるんだけど、プロトコルを基礎づける特殊メソッド全ての存在チェックがないから構造的型付けではないという理由で線を引くのであれば、
たとえば、そのコードでfooの中に__len__を参照するコードもあった場合とか、プロトコルを基礎づける特殊メソッドが単一の場合とかなら構造的型付けになるのかという話になる。
仮にそれらの場合もダックタイピングではあるが構造的型付けではないと整理するなら、それは結局、型付け・型検査がそのようにされるべきだという主張ということになる。
構造的な型の方の粒度をプロトコルより狭く設定する(たとえば、SupportsGetitemみたいな感じで)という構成も可能だろうし、あまり本質的な線引きにはなっていないように思うかな。
「動的型付けは型付けではない」という考え方自体は昔も今も非常に有力にあるし、結局、そういう言う考え方なんだろうなと思うけど。