В терминах, которые программист ООП понимал бы (без какой-либо подготовки функционального программирования), что такое монада?
Какую проблему он решает и какие наиболее распространенные места он использует?
EDIT:
Чтобы прояснить понимание, которое я искал, скажем, вы конвертировали приложение FP, в котором были монады в приложение ООП. Что бы вы сделали, чтобы передать обязанности монадов в приложение ООП?