и я хочу заменить его на что-нибудь. Нужно что-то c вот такими фичами
f :: (Has' A env, Has' B env) => env -> a
f e = g (e `add` C)
g :: (Has' A env, Has' B env, Has' C env) => env -> a
h :: (Has' A env, Has' C env) => env -> a
h e = f (map' c2b)
where
c2bc :: C -> B
2b = ...
я могу наколхозить что-то типа гетерогенного списка, у которого будет Has’ на каждый элемент, но как-то не хочется велосипедить. Есть тут разумные варианты? can-i-haz я смотрел, но оно немного не про то
ну и тоже самое для ReadetT env m само собой — такой юзкейс тоже есть
то есть что-то такое гетерогенное, но с classy линзами например
а я понял, мне нужно extensible record с классами на каждое поле
Обсуждают сегодня