Size: a a a

2021 June 08

AP

Aleksei (astynax) Pi... in Haskell
Все просто гоняют трансформеры для удовлетворения mtl
источник

AP

Aleksei (astynax) Pi... in Haskell
Потому что это уже готовое решение
источник

к

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

к

кана in Haskell
строгая и ленивая
источник

AP

Aleksei (astynax) Pi... in Haskell
Вот их и используют
источник

[

[BRM]White Rabbit in Haskell
хм, я тут подумал.
У меня первый проект на хаскеле и всё в ио👀
Куда-то я свернул не туда
источник

к

кана in Haskell
так их ДВЕ
источник

AP

Aleksei (astynax) Pi... in Haskell
Да энергичную берут и всё
источник

к

кана in Haskell
> mtl — "ровно один интерпретатор, который уже есть"
источник

к

кана in Haskell
да что за чушь ты пишешь вообще
источник

AP

Aleksei (astynax) Pi... in Haskell
Ну ок, "ровно два интерпроетатора, которые уже есть"
источник

к

кана in Haskell
а когда ньютайп делают?
источник

AP

Aleksei (astynax) Pi... in Haskell
Ох, как горит-то!
источник

AP

Aleksei (astynax) Pi... in Haskell
Да не все делают!
источник

к

кана in Haskell
каждый ньютайп - +1 интерпретатор
источник

[

[BRM]White Rabbit in Haskell
> ровно два интерпретатора, которые юзают и ещё пара сотен, которые юзают, но реже
источник

AP

Aleksei (astynax) Pi... in Haskell
Если ты все инстансы дерайвишь, то это всегда один интерпретатор
источник

AV

Andrey Vlasov in Haskell
Я не использовал его) Если ограничить примитивные операции до await и yield, то (наверное) как-то так выглядит декларация
data Conduit i o r where
 Await :: Conduit i o (Maybe i)
 Yield :: o -> Conduit i o ()

await :: Member (Conduit i o) r => Eff r (Maybe i)
await = send Await

yield :: Member (Conduit i o) r => o -> Eff r ()
yield = send . Yield
источник

AV

Andrey Vlasov in Haskell
((((Но я не шарю вообще если шо))))
источник

к

кана in Haskell
ошибся, у некоторых три базовых реализации в мтл
источник