Ага. В целом уже на практически полностью открытой структуре данных пачка функций логически собирается в сервис, вместо reader монады - injection в конструктор, вместо IO - ; для композиции и exception для ошибок. Не хватает АДТ но и они могут появится с sealed классами.
Кстати если посмотреть на arrow-fx в котлине, там уже не нужен спец синтаксис для монад. Пишется обычный императивный код и за счет suspend отделяется IO. Выглядит круто.