Buenas, tengo unas consultas respecto a Monad Transformers:
1) Si tenemos (como en el práctico 3) un tipo type M a = ExceptT Error (ReaderT Env Identity) a, por la libreria de MTL, el tipo es inmediatamente una instancia de Monad (y Applicative, Functor), MonadReader, MonadError, pero en práctico se nos puso "No instancia explícitamente en la mónada pedida.". Cuando tenemos un ejercicio (en el parcial) que se pide definir un tipo como el anterior, podemos delegar la carga a la librería MTL o tenemos que instanciar manualmente las clases.
2) En el texto de Monad Transformers, cuando se utiliza un tipo newtype M a = ReaderT AppConfig (StateT AppState IO) a, se deriva automáticamente las instancias correspondientes utilizando MTL y la extensión GeneralizedNewtypeDeriving. En la prueba, tendríamos permitido utilizar dicha extensión?
Desde ya muchas gracias,
Saludos,
Rafael.