ちなみにOcamlは、どちらの選択も許す。
・鳴くことができて歩くことができれば、このメソッドの引数として正しい。
というのは、自動的に検査できる。

さらに、引数がアヒルのクラスだと、型を明示することで、
・鳴くことができて歩くことができたとしても、アヒルでなければ、このメソッドの引数として正しくない。
という検査をさせることもできる。

どちらがいいかは、ケースバイケースだと思う。