более-менее. Очевидно, что результат полиморфен по двум типам и сводить нужно оба. happy path заботится об успешном результате, нужно ли заботиться о типа с ошибками — предмет дискуссий. Люди как-то сошлись на том, что есть бизнес-ошибки и всякие другие ошибки, в основном все инструменты про то, чтобы их отделить друг от друга. Но даже бизнесовые ошибки конвертить не очень удобно, тут все зависит от доступных средств. В окамле, например, есть открытые типы и полиморфные варианты, я вот хочу их попробовать заюзать, мне пока кажется это наиболее нормальным способом. С эксепшенами это выглядело бы так, что тебе не нужно обрабатывать их до определенного момента, где ты говоришь компилятору, что вот тут я собрался обработать всю херню, а он дальше смотрит на вызовы и говорит тебе какие эксепшены там могут возникнуть