Parcial 2017 | Ejercicio 7

Re: Parcial 2017 | Ejercicio 7

de Alberto Pardo -
Número de respuestas: 0
Hola Daniel,

Si tenés una composición m1 >> m2 no necesariamente el tipo de m1 y m2 tienen que ser el mismo, dado que el tipo de (>>) es Monad m => m a -> m b -> m b. print efectivamente tiene tipo IO ().

Lo que sucede con la respuesta c) es que si monaux :: Monad m => Int -> m Int entonces significa que es una función genérica en la mónada m, por lo que es válida en particular para la mónada IO. Es lo que ocurre con funciones como liftM, sequence u otras que están definidas para cualquier mónada. Por lo tanto el código compila sin problemas.

Saludos,
Alberto.