LINUX.ORG.RU

История изменений

Исправление 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 это две разные вещи, одно локально и должно работать ровно на стыке двух функций, другое — может работать нелокально через весь стек вызовов разных функций.