Я читал отличное введение в монады для программистов Clojure. В статье показано, что монада Identity функционально эквивалентна Clojure let и что монада Sequence/List эквивалентна for.
Когда статья попадает на монадные трансформаторы, он показывает пример, объединяющий монады Maybe и Sequence. Итак, одна из причин использования монадии Sequence вместо a for заключается в том, что я могу ее преобразовать. Однако преобразование монады Идентичности для меня не имеет смысла - разве это не всегда было бы эквивалентно простому созданию любой преобразующей монады? Например, если я преобразовал Maybe with Identity - это не значит, что просто дайте мне Maybe, который было бы проще объявить напрямую?
Может ли кто-нибудь выяснить, есть ли практическое использование в Clojure для выбора монадии Identity над let (возможно, я не думаю полностью о последствиях трансформаторов?), или это просто теоретическая полнота