Альтернативные реализации классов типов стандартной библиотеки Haskell

Я видел, как многие люди жалуются на некоторые классы типов из стандартной библиотеки, говоря что-то вроде «Monad должен требовать Functor» или даже «Monad должен требовать Applicative», «Applicative должен требовать Pointed», » Num не должен требовать Show "и т. Д. Итак, у меня есть несколько вопросов:

  1. Есть ли аргументы в пользу того, как дерево зависимостей классов типов имеет эти" недостатки ", воспринимаемые сообществом, или это просто результат того, как все делалось исторически?

  2. Насколько радикальное изменение в этом может нарушить существующий код?

  3. Существуют ли альтернативные реализации классов базовых типов (особенно стрелки, монады, аппликативные и т. д.) вокруг этого реализовать «правильный» набор классов в зависимости энсис?

20
задан Don Stewart 23 April 2011 в 22:46
поделиться