Изучив теорию категории, основанную на книгах MacLane, Awodey и Spivak, я пытаюсь понять свободную/оперативную монаду в Haskell.Coyoneda и производящий functor в Haskell
Мы можем получить монаду только от типа данных, используя Control.Monad.Free
после преобразования его в функтор с Data.Functor.Coyoneda
, который основан на математическом фоне под названием Yoneda lemma.
Но я не совсем понимаю, что функтор может быть автоматически сгенерирован производным расширением функтора в GHC вместо того, чтобы полагаться на лемму Йонеды.
Есть ли ограничение использовать производящий функтор в GHC по сравнению с Data.Functor.Coyoneda
?
Возможно, вы найдете [этот блогпост] (https://oleksandrmanzyuk.wordpress.com/2013/01/18/co-yoneda-lemma/) полезным – Carsten