У многих из нас нет фона по функциональному программированию и, тем более, на алгебре теории категорий. Поэтому давайте предположим, что нам нужно и, следовательно, создать общий тип типа
data MySomething t = .......
Затем мы продолжаем программирование и используя MySomething. Какие доказательства должны предупредить нас о том, что MySomething является монадой, и мы должны сделать ее одной, написав instance Monad MySomething ... и определяя для нее return и >>=?
Спасибо.
Изменить: См. также этот вопрос: является цепной операцией единственное, что решает вопрос монада?, и этот ответ монада - это массив функций с вспомогательными операциями