Хватит выбрасывать ошибки, которые не видит ваша система типов
Выброшенные исключения скрывают пути отказа от вашей системы типов. Вот почему явный возврат ошибок делает ваш код более честным, и как перейти на него, не ненавидя свою жизнь.
Сигнатура вашей функции говорит, что она возвращает . Это не так. Она возвращает или взрывается. Система типов просто не знает о второй ветке. Это…