Type classes in languages like Haskell are used for many of the things that protocols are used for.
Класи типу в мовах, таких як Haskell, використовуються для багатьох речей, для яких використовуються і протоколи.