"Программы - самые сложные артефакты человечества. Сущности, которыми они оперируют, иногда не вмещаются в нашу Вселенную." (c)Сергей Зефиров
"Читал тут недавнее про Coq. Там какие-то монатки встречались." (с) Anonymous
Монадой в программировании называется параметризованный класс M<T>, у которого есть две операции, lift: Т → M<T> и flatten: M<M<T>> → M<T> - к примеру, список, у него lift - это синглтон (одноэлементный список), а flatten - выстраивание списка из списка списков.
Что тут сложного?!