Ok, così ho capito come implementare Reader (e ReaderT, non mostrato) utilizzando il pacchetto operational: {-# LANGUAGE GADTs, ScopedTypeVariables #-}
import Control.Monad.Operational
data Reader
Pensi che sia possibile un trasformatore proxy gratuito? Qualcosa come data FreePT f p a' a b' b m r = ....
instance (Proxy p,Functor f) => Proxy (FreePT f p) where
....
instance (Functor f)
Sto cercando di astrarre il modello di applicare una certa semantica a una monade libera su qualche functor. L'esempio corrente che sto usando per motivare questo è applicare gli aggiornamenti a un'en