Size: a a a

2021 May 27

AA

A64m AL256m qn<co... in Haskell
ну в интерпретаторе будет, а так-то мономорфизм рестрикшон включен
источник

AA

A64m AL256m qn<co... in Haskell
и это не оптимизация
источник

AV

Andrey Vlasov in Haskell
Привет, можно как-то реализовать instance MonadReader SubConfig (ReaderT Config m), где SubConfig — структурно часть Config?
Цель: есть функции, запускаемые в контексте MonadReader SubConfig m, хочу запускать их в MonadReader Config m, желательно без бойлерплейта
Вот MRE с ошибкой компиляции: https://replit.com/@MrAndersen1/AttractiveConstantLightweightprocess#main.hs
источник

AP

Aleksei (astynax) Pi... in Haskell
Вы хотите инстанс MonadReader для Reader, но такой инстанс уже есть
источник

AP

Aleksei (astynax) Pi... in Haskell
И этот инстанс более общий, чем ваш
источник

к

кана in Haskell
проще всего сделать ньютайп, и для него нужный инстанс
источник

AP

Aleksei (astynax) Pi... in Haskell
А как newtype поможет сделать такую вот иерархию вложенных окружений?
источник

AV

Andrey Vlasov in Haskell
Для разных a и b нельзя делать instance C a t и instance C b t?
источник

AP

Aleksei (astynax) Pi... in Haskell
нет, fundep не разрешит
источник

AV

Andrey Vlasov in Haskell
Почему? В расте так можно
источник

AP

Aleksei (astynax) Pi... in Haskell
MonadReader r m | m -> r
источник

AP

Aleksei (astynax) Pi... in Haskell
"m -> r" вот это вот не даёт иметь произвольные комбинации
источник

AV

Andrey Vlasov in Haskell
Блин... Зачем это сделано?
источник

MK

Maxim Koltsov in Haskell
для вывода типов
источник

MK

Maxim Koltsov in Haskell
обычно для этого используется класс Has из data-has (или can-i-haz)
источник

AP

Aleksei (astynax) Pi... in Haskell
Чтобы в контексте m было понятно, что даст ask
источник

MK

Maxim Koltsov in Haskell
типа (MonadReader r m, Has SubConfig r)
источник

AV

Andrey Vlasov in Haskell
Спасибо!
источник

MK

Maxim Koltsov in Haskell
кажется это даже "паттерн", но я хз как его нагуглить
источник

AV

Andrey Vlasov in Haskell
Ну, было бы понятно из того, как используется переменная
источник