Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Потрясающая статья, надо будет пару раз вдумчиво проштудировать. Правда после таких статей я понимаю, что вообще не знаю Haskell, и что мне ещё вникать и вникать.
Продолжая некропостинг: я понял это так, что runReader (тип показывается runReader :: Reader r a -> r -> a) принимает Reader r a и значение типа r и возвращает результат (типа a) применения Reader-а к этому значению r (состоянию).
Так что в Reader-е значение оказывается когда runReader его передаёт, а у него оно появляется, когда мы сами передаём как-нибдуь так runReader greeter "Habr".
Тройка полезных монад