¿Hay una mónada que no tenga un transformador de mónada correspondiente (excepto IO)?
Hasta ahora, cada mónada (que se puede representar como un tipo de datos) que he encontrado tenía un transformador de mónada correspondiente, o podría tener uno. ¿Existe una mónada que no pueda tener una? O¿Todas las mónadas tienen un transformador correspondiente?
Por untransformadort
correspondiente a la mónadam
quiero decir quet Identity
es isomorfo am
. Y, por supuesto, que satisface las leyes de transformadores de mónada y quet n
es una mónada para cualquier mónadan
.
Me gustaría ver una prueba (idealmente constructiva) de que cada mónada tiene una, o un ejemplo de una mónada particular que no tiene una (con una prueba). Me interesan tanto las respuestas más orientadas a Haskell como las teóricas (de categoría).
Como una pregunta de seguimiento, ¿hay una mónada?m
que tiene dos transformadores distintost1
yt2
? Es decir,t1 Identity
es isomorfo at2 Identity
y param
, pero hay una mónadan
tal quet1 n
no es isomorfo at2 n
.
(IO
yST
tengo una semántica especial, así que no los tengo en cuenta aquí y no los tengamos en cuenta por completo. Centrémonos solo en mónadas "puras" que se pueden construir utilizando tipos de datos).