Что такое монада?
Вот, простое объяснение - https://urvanov.ru/2017/10/18/%D0%BC%D0%BE%D0%BD%D...
Есть обычное вычисление a -> b
Монады же реализуют вычисления с эффектами:
Maybe - может быть неудача,
Список - много результатов,
Either - типизированные исключения,
(s, b) - запись в лог,
( (->) e ) b - чтение из внешнего окружения,
(State s) b - изменяемые состояния,
IO b - ввод-вывод (консоль, файлы).
(примеры для Haskel)