Я читал кое-что материалы в бесплатных монадах и я действительно не думаю, что я намного ближе к реализации, но я думаю, что я ближе к пониманию того, что они из себя представляют!
Учитывая множество вышеупомянутых ресурсов, я понимаю, что бесплатные монады «освобождают» «монаду» (которая является типом данных) от «вычислительной» работы. Другими словами, бесплатные монады предоставляют интерфейс для таких вещей, как join
и map
, которые клиент будет реализовывать самостоятельно?
data Free f r = ...
, покаf
является функтором, тогдаFree f
является монадой, без необходимости точного рассмотрения того, что такоеf
. - person chepner   schedule 30.05.2019