История изменений
Исправление quasimoto, (текущая версия) :
не мусорится тип
А нужно.
у вас где-то что-то упало, но неизвестно где и что
Ничего не упало. Для примера — Maybe Config -> ..., Maybe BackendConnection -> ..., Either LocalCache RemoteCache -> ..., это же самое внутри структур в data, ... -> Either Int Double, ... -> Either ParserResult ParserError.
Только в последнем случае можно променять Either на исключение, но не нужно — ни в хаскеле (так как это сразу заставит клиента окунаться в IO), ни где-то ещё — return codes и exceptions это две разные вещи, одно локально и должно работать ровно на стыке двух функций, другое — может работать нелокально через весь стек вызовов разных функций.
Исходная версия quasimoto, :
не мусорится тип
А нужно.
у вас где-то что-то упало, но неизвестно где и что
Ничего не упало. Для примера — Maybe Config -> ..., Maybe BackendConnection -> ..., Either LocalCache RemoteCache -> ..., это же самое внутри структур в data, ... -> Either Int Doble, ... -> Either ParserResult ParserError.
Только в последнем случае можно променять Either на исключение, но не нужно — ни в хаскеле (так как это сразу заставит клиента окунаться в IO), ни где-то ещё — return codes и exceptions это две разные вещи, одно локально и должно работать ровно на стыке двух функций, другое — может работать нелокально через весь стек вызовов разных функций.