Таки дошли руки до симуляции перегрызенного кабеля (спрашивал в #TP2TNF).
Хорошо иногда бывает параметризовать код IO-манаткой. Получилось так: https://gist.github.com/gdsfh/c0aa2733a6d09b49f894 . Работает замечательно. Благодаря fail_seed можно получать детерминированные фейлы, что помогает при отладке.
А отладка заключалась в том, что Lwt.join как-то странно себя ведёт. В документации сказано "падает, если какой-то из тредов падает", тогда как в реальном случае висит: http://pastebin.com/scLnbQ2A . Вотзефак?
Олег и Кант про немножко геев: http://okmij.org/ftp/Haskell/AlgorithmsH1.html#foldl
Наконец-то я дошёл до этапа развития в себе функционального программиста, на котором во влажных мечтах щупаешь фп и прочие теории категорий, а на деле ебёшься с жабой и рельсами.
А обычно с этого начинают.
Всё пошло вспять!
// хотя камлорельсы всё ещё пописываю в свободное время.