Почему все классы типов Haskell имеют законы?

Все классы типов вTypeclassopedia имеют связанные законы, такие как ассоциативность или коммутативность для определенных операторов. Определение «закона» кажется ограничением, которое не может быть выражено в системе типов. Я, конечно, понимаю, почему вы хотите иметь, скажем, законы монад, но есть ли фундаментальная причина, по которой класс типов, который может быть полностью выражен в системе типов, не имеет смысла?

Ответы на вопрос(3)

Ваш ответ на вопрос