Size: a a a

2020 May 06

AV

Alexander Vershilov in Haskell
Но теперь ты знаешь бесполезную информацию и как сделать свою лифтилку если библиотеки не устраивают
источник

MP

Misha Puzanov in Haskell
пока вроде все понятно 🙂
источник

MP

Misha Puzanov in Haskell
тогда зачем существует и unlift и monad-control?
источник

MP

Misha Puzanov in Haskell
вернее так: почему у первого (если я правильно понимаю) область определения меньше?
источник

AV

Alexander Vershilov in Haskell
monad-control сложный
источник

AV

Alexander Vershilov in Haskell
Он простой пока ты не пытаешься написать инстанс
источник

AV

Alexander Vershilov in Haskell
А когда пытаешься, то идёшь и смотришь на ошибки компилятора и пытаешься его убедить, что всё ок
источник

AV

Alexander Vershilov in Haskell
Даже автор либы так делал
источник

AV

Alexander Vershilov in Haskell
В общем сложная либа, часть сложности от того, что базовой монадой не только IO может быьт
источник

AV

Alexander Vershilov in Haskell
А например STM
источник

AV

Alexander Vershilov in Haskell
Снойман решил, что это слишком сложно, мол и трансформеры не всегда хочешь таскать а ReaderT IORef хватит всем, и базоваой монадой IO
источник

AV

Alexander Vershilov in Haskell
И запилил более простую библиотеку
источник

AV

Alexander Vershilov in Haskell
Поидее и более быструю
источник

MP

Misha Puzanov in Haskell
ну вот я как раз сейчас заменил unlift.async на тот самый и вроде оно дадже начинает компилироваться
источник

MP

Misha Puzanov in Haskell
при том, что вроде ничего такого экстаординарного не делаю
источник

MP

Misha Puzanov in Haskell
и да, оно компилируется и работает
источник

MP

Misha Puzanov in Haskell
супер, спасибо за объяснения
источник

AV

Alexander Vershilov in Haskell
Круто! Хорошо, что полезно
источник

AV

Alexander Vershilov in Haskell
А можно как-то с линзами коротко сделать (a,b) -> (a,b,C) ?
источник

MP

Misha Puzanov in Haskell
ответа не знаю, но зачем? учитывая, что это почти буквально запись лямбды
источник