В копилку плюсов Effect(как и функционального программирования) это то, что у тебя ошибка типизирована, а не выбрасывается куда-то в код. Представим такую "нереалистичную ситуацию", когда в библиотеке забыли описать что метод/функция оказывается делает throw в каких-то ситуациях, а наш код, конечно, же не делает try/catch. В случае эффекта, ты не кидаешь ошибку, а возвращаешь и метод/функция уже типизирована ошибками самим Effect и ты гарантированно обработаешь ошибку
В копилку плюсов Effect(как и функционального программирования) это то, что у тебя ошибка типизирована, а не выбрасывается куда-то в код. Представим такую "нереалистичную ситуацию", когда в библиотеке забыли описать что метод/функция оказывается делает throw в каких-то ситуациях, а наш код, конечно, же не делает try/catch. В случае эффекта, ты не кидаешь ошибку, а возвращаешь и метод/функция уже типизирована ошибками самим Effect и ты гарантированно обработаешь ошибку