Я уже говорил, что
ListT
является классическим примером багги-монадного трансформатора, который не удовлетворяет законам монады .
Можно ли это продемонстрировать на простом примере?
Изменить: Моя идея с ListT []
немного неправильна, я пропустил, что документация требует, чтобы внутренняя монада была коммутативной. Таким образом, ListT
багги только в том смысле, что это требование, или есть еще одна проблема? ( примеры в Haskell wiki все используют ListT IO
и IO
, очевидно, не являются коммутативными.)