Examen 2019 ej1 a ii

Examen 2019 ej1 a ii

de Rafael Agustin Castelli Ottati -
Número de respuestas: 0

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í?

Desde ya muchas gracias,
Saludos,
Rafael.