Gibt es eine Monade ohne entsprechenden Monadentransformator (außer IO)?
Bisher hatte jede Monade (die als Datentyp dargestellt werden kann), auf die ich gestoßen bin, einen entsprechenden Monadentransformator oder könnte einen haben. Gibt es so eine Monade, die keine haben kann? OderHaben alle Monaden einen entsprechenden Transformator?
Durch eineTransformatort
entsprechend Monadem
ich meine, dasst Identity
ist isomorph zum
. Und natürlich, dass es den monadischen Transformatorgesetzen entspricht und dasst n
ist eine Monade für jede Monaden
.
Ich möchte entweder einen Beweis (im Idealfall einen konstruktiven) sehen, dass jede Monade einen hat, oder ein Beispiel für eine bestimmte Monade, die keinen hat (mit einem Beweis). Ich interessiere mich sowohl für mehr Haskell-orientierte als auch für (kategorietheoretische) Antworten.
Gibt es als Folgefrage eine Monade?m
das hat zwei verschiedene Transformatorent1
undt2
? Das ist,t1 Identity
ist isomorph zut2 Identity
und zum
, aber es gibt eine Monaden
so dasst1 n
ist nicht isomorph zut2 n
.
(IO
undST
Ich habe eine spezielle Semantik, deshalb berücksichtige ich sie hier nicht und lasse sie völlig außer Acht. Konzentrieren wir uns nur auf "reine" Monaden, die mit Datentypen erstellt werden können.)