Здравствуйте, alex_public, Вы писали:
K>>Т.е. возвращать из функций вида a -> m b и передавать в другие — это все-таки редко нужно, я правильно понял?
_>Да, цепочки вида m a->m b->m c возникают весьма редко. И в этих редких случаях монады как раз оправданы (в любых языках).
Частота зависит от программиста. Скажем если работа с асинхронщиной, то совершенно не ясно, почему это должно возникать редко

Наоборот, очень часто — есть коллекция А, есть коллекция Б, их надо смержить. Но вот фокус, они приходят в промисах.
и получается вот такое
var result = merge(getA(),getB());
парадокс — по этому коду нельзя сказать, какой он, синхронный или асинхронный, если не смотреть использование или не глянуть внутрь. Есть один большой минус — брейкпоинты некуда статить.
P.S. Я уже знаю, что это называется "лифтинг".