Konkretes Beispiel, das zeigt, dass Monaden unter Komposition (mit Beweis) nicht geschlossen sind?

Es ist allgemein bekannt, dass anwendungsbezogene Funktoren unter Komposition geschlossen sind, Monaden jedoch nicht. Ich hatte jedoch Probleme, ein konkretes Gegenbeispiel zu finden, das zeigt, dass Monaden nicht immer komponieren.

Diese Antwort gibt[String -> a] als ein Beispiel für eine Nicht-Monade. Nachdem ich ein wenig damit herumgespielt habe, glaube ich es intuitiv, aber diese Antwort besagt nur, dass "Join nicht implementiert werden kann", ohne wirklich eine Begründung zu geben. Ich hätte gerne etwas Formaleres. Natürlich gibt es viele Funktionen mit Typ[String -> [String -> a]] -> [String -> a]; man muss zeigen, dass eine solche Funktion notwendigerweise die Monadengesetze nicht erfüllt.

Jedes Beispiel (mit begleitendem Beweis) wird ausreichen; Insbesondere suche ich nicht unbedingt einen Beweis für das obige Beispiel.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage