Хорошо известно, что аппликативные функторы замкнуты по композиции, но монады - нет. Однако мне не удалось найти конкретный контрпример, показывающий, что монады не всегда сочиняют.
Этот ответ дает [String -> a]
как пример немоноды. Немного поиграв с ним, я считаю это интуитивно, но этот ответ просто говорит: "Присоединение не может быть реализовано", без каких-либо оправданий. Мне хотелось бы что-то более формальное. Конечно, существует множество функций с типом [String -> [String -> a]] -> [String -> a]
; нужно показать, что любая такая функция обязательно не удовлетворяет законам монады.
Любой пример (с сопроводительным доказательством) будет делать; Я не обязательно ищут доказательство вышеприведенного примера в частности.