Dada la siguiente definición:
mon a b = a >>= \x -> return b >>= \y -> return (x : y)
¿Cuál de las siguientes afirmaciones es correcta?
No termino de comprender cómo está relacionado el tipo de la función con sus parámetros.
Comprendo que x sea a e y deba ser return b porque así lo requiere el operador (:)
Pero dentro del tipo de mon, m a sería referido a a y [a] sería b o cómo, no logro comprender qué son m a y [a].
Gracias