Короче, в TEA часто такой паттерн есть – в ответ на Msg A нужно дозапросить данные (например, из SharedPreferences). Как обычно это решается – кидаешь Effect(Cmd) и в ответ ждёшь Msg B, и уже когда он пришёл, достаёшь из него данные и компьютишь свою логику
Coeffect – это способ избежать этой нудятины. Ты в ответ на Msg A бросаешь Coeffect<R>, и функцию (R) -> State, Effect. И коэффект сначала выполняется, а потом вызывает твою функцию и ты в шоколаде
Щас понял, что это именно то, что мне нужно. У тебя появились экзамплы на котлине?
Просто сейчас дизайнил что-то похожее и вспомнил про коэффекты.