Konkretny przykład pokazujący, że monady nie są zamknięte w składzie (z dowodem)?

Dobrze wiadomo, że funktory aplikacyjne są zamknięte w składzie, ale monady nie są. Mam jednak problem ze znalezieniem konkretnego kontrprzykładu pokazującego, że monady nie zawsze się komponują.

Ta odpowiedź daje[String -> a] jako przykład nie-monady. Po dłuższej zabawie w to wierzę intuicyjnie, ale ta odpowiedź mówi po prostu, że „nie można zaimplementować” bez podania żadnego uzasadnienia. Chciałbym coś bardziej formalnego. Oczywiście istnieje wiele funkcji z typem[String -> [String -> a]] -> [String -> a]; należy pokazać, że każda taka funkcja z konieczności nie spełnia praw monad.

Dowolny przykład (z towarzyszącym dowodem) zrobi; Nie koniecznie szukam dowodu w szczególności na powyższy przykład.

questionAnswers(4)

yourAnswerToTheQuestion