>>745,762
RubyとかPythonでは型とか言語の機構で仕様を実現するのではなく、
単体テストを使うんではないだろうか?

例えばEnumerableだったら実際にeachを使う各メソッドのテストを
定義しておき、それに実装クラスのオブジェクトを突っ込んで動かせば
eachを実装し忘れたようなケースはテスト失敗になる