Разница в том, что Writer
- это монада, тогда как WriterT
- это преобразователь монад , т. Е. Вы даете ему некоторую базовую монаду, и она возвращает вам новую монаду с функциями "писателя"наверху.Если вам нужны только специфичные для писателя функции, используйте Writer
.Если вам нужно объединить его эффекты с какой-нибудь другой монадой, такой как IO
, используйте WriterT
.