Hola, en este ejercicio se pide crear una mónada que sea instancia de MonadState y MonadReader (sin usar transformadores).
Llegué a una solución diferente a la solución del examen, pero me queda la duda de si igualmente es aceptable. Probándola parece funcionar bien.
En particular el tipo de mi mónada es
newtype GenericRender c s a = R {rend :: c -> s -> (c, s, a) }
Contra el tipo de la solución
data Render a = Render {runRender :: Int → (Int, String) → (a, (Int, String))}
Por lo que entiendo, el tipo de la solución sería equivalente a lo que sería el tipo de aplicar transformadores de mónadas, mientras que mi solución es ad-hoc.
Es correcto razonar estos ejercicios de esta forma? En particular, estaría bien presentar la mónada GenericRender que escribí?
Es correcto razonar estos ejercicios de esta forma? En particular, estaría bien presentar la mónada GenericRender que escribí?
Desde ya muchas gracias,
Saludos,
Rafael.