Здравствуйте, hi_octane, Вы писали:
_>В C# эту проблему решили чуть более естественно в async/await, но увы в CLR нет higher-order types, так что нет и монад.
Даже если были бы — await это всё равно не то, например монаду List на нём не выразить, так как нужна поддержка многократного запуска продолжения с одного места.