Проблема в том что есть множество функций вида:
... -> ... -> Model -> Eff (Either Err Model)
... -> Model -> Eff (Either Err Model)
... -> ... -> Model -> Eff (Either Err Model)
изредка бывают:
... -> ... -> Model -> Eff (Either Err a)
... -> Model -> Eff (Either Err a)
... -> ... -> Model -> Eff (Either Err a)
хочется уметь все их чейнить, то есть брать модель из предыдущего вызова и, без боли, "распаковывая" или пробрасывая дальше ошибку, отдавать в следующий. Что поможет?
do-нотация? Заимплементить
<*>?
Здесь пишу
Either потому что сейчас так, на
Expect только начал менять и параллельно рассматриваю альтернативные подходы