Dopo aver studiato la teoria delle categorie basata sui libri MacLane, Awodey e Spivak, sto cercando di capire la monade libera/operativa in Haskell.Coyoneda and Deriving Functor in Haskell
Possiamo ottenere una monade da un solo tipo di dati utilizzando Control.Monad.Free
dopo averlo trasformato in un functor con Data.Functor.Coyoneda
, che si basa sullo sfondo matematico chiamato lemma Yoneda.
Ma non sto capendo appieno che il functor possa essere generato automaticamente dall'estensione del functor derivante in GHC invece di fare affidamento sul lemma Yoneda.
Esiste qualche restrizione per l'utilizzo del derivatore in GHC rispetto a Data.Functor.Coyoneda
?
forse troverai [questo blogpost] (https://oleksandrmanzyuk.wordpress.com/2013/01/18/co-yoneda-lemma/) utile – Carsten