Aleksei (astynax)
Ага, переинженирили, теперь решили откатить
кана
Хм, чет странное
кана
Там же интероп на эффектах был, как в IO указывать, что за эффект будет?
Alex
https://twitter.com/paf31/status/909139230554710016
кана
Или IO будет покрывать все колы в жс?
Anatolii
не успел я посомтеть язык с Eff
Aleksei (astynax)
Всё равно Eff всегда пух до размеров IO :)
Anatolii
хотелось понять как он от хаскеля отличается
Alex
эфф останется, просто не будет предпочтительнее
Alex
отличался он просто параметризацией по рекорду с метками эффектов
Alex
типа синтаксические эффекты
Dmitry
о да, наконец-то!
Dmitry
так достало делать IO вручную
кана
Какой-нибудь @purescript_ru есть?
Anatolii
так достало делать IO вручную
удобно наверное было :)
Dmitry
c другой стороны, такая дикая изменчивость языка — это то, что мешает мне юзать PureScript в проде
Dmitry
обновления такие, что чуть ни пол исходника приходится переписывать под каждый мажорный релиз
кана
Нужно с нуля переписывать, иммутабельная разработка
Dmitry
ага, ништяк
Dmitry
а еще самый цимес в том, что важные библиотеки они ведь тоже с лагом обновляются
Влод
не успел я посомтеть язык с Eff
+ тоже от этого грустно. но судя по всему автор языка не сразу пришёл к этому решению и были причины
Dmitry
тот же purescript-aff для 0.10.0 кажется конкретно долго обновлялся
Dmitry
и в результате не работали все зависимые библиотеки
Dmitry
и если обновился и пофиксил своё, то чужое — так и будет лежать ломаным полгода, и всё равно аппликуха не будет работать
Dmitry
вот хороший язык, но обратная совместимость — это аццкий трындец...
Alex
prs are welcome как говорится :)
Dmitry
😊
Влод
Влод
вот эта ветка понравилась
Dmitry
так я не PR хочу делать, я хочу проект сдать, например 😊
Влод
раньше всегда относился к Eff как к замене MTL
Dmitry
А MTL — это что?
кана
Не, это другой эфф
Влод
композиция монад
Dmitry
Мне Eff больше на FreeMonad был похож
Dmitry
а, monad transformer
Влод
Мне Eff больше на FreeMonad был похож
можешь раскрыть мысль?
Alex
да нет же, эфф чисто на уровне синтаксиса всегда работал
Dmitry
ну также, как и сахар для монад
Dmitry
не?
andrei
да нет же, эфф чисто на уровне синтаксиса всегда работал
так вот этот row type это просто фантом был?)
Aleksei (astynax)
FreeMonad подразумевает интерпретатор, который "отработает потом". Eff сразу выполнялись
Dmitry
ну так на то пюреха и неленивый язык
Aleksei (astynax)
ага
кана
Как я понял, в пурсе эфф - тот же ио, только с меткой того, что за сайд эффект выполниться в жс. Эфф, который замена мт - это уже фри монада, в пурсе его нет
Dmitry
ну вот и мне тож так казалось
andrei
А как теперь описывать жс сайд эффекты?
кана
Влод
решил ознакомиться с рекомендованной
Влод
https://hackage.haskell.org/package/hset
Aleksei (astynax)
Eff плоский, в отличие от стэка трансформеров
Влод
иии в общем это лучшая организация модулей/документации
кана
Влод
https://hackage.haskell.org/package/hset-2.2.0/docs/Data-HSet.html и дальше подмодули гет, модифай
Aleksei (astynax)
Просто Лёша не стал реэкспортить подмодули :)
Влод
не приходится листать эти лишние слова на ествественном языке
Viacheslav
IO — это монада, eff сам по себе не монада
кана
Ну аналогия не моя, я почти процитировал того чувака с твитора из пурсы
кана
"Eff in PS is like IO with phantom type". Возможно ты говоришь про идрисовые эффекты
Viacheslav
грубо говоря это некая штука, которая выполняет роль монад при работе с сайдэффектами, но имеет очень хорошие свойства при композиции разных сайдэффектов
Viacheslav
реализация в идрисе своя, но мысль там та же
Зигохистоморфный
IO — это монада, eff сам по себе не монада
монада же и приносит эффект
кана
Я знакомился с пейпером про расширяемые эффекты и ничего общего с эффом из пурсы я не увидел общего. И таки эфф в пурсе это именно монада
Viacheslav
ну это короче сравнения уровня — монадо это буррито
Dmitry
😃
Dmitry
а кто-нибудь контачит с Филом? Если б его можно было уговорить приехать к нам на конфу — так сами и спросили бы
Viacheslav
про конкретную реализацию в pure script я не в курсе, но монада > eff
Влод
Как я понял, в пурсе эфф - тот же ио, только с меткой того, что за сайд эффект выполниться в жс. Эфф, который замена мт - это уже фри монада, в пурсе его нет
так вот зачем я этот hset достал. можно было бы сделать data Eff effect a = IO a main = mainWithEffects mainWithEffects :: Eff effect a и дальше переписать print на принт с эффектом консоли/блокировки ну и всё подобное. и нужно чтобы все эти эффекты на уровне типов хранились в неупорядоченном множестве. хотя мб список на уровне типов тоже бы подошёл (не представляю реализации, но и делать всего такого тоже не собираюсь, просто захотелось представить как это сделали в пурсе и неподсматривать)
кана
Я же говорю, в пурсе судя по всему не алгебраические эффекты, это просто тегироаанный IO, миснейминг
Viacheslav
ладно, думал ты про eff в целом
Влод
ну фигово значит сделано)
вся ветка про то что у фила другой eff. это как говорить про ST из хаскеля и идриса
кана
Ну да. Я сразу понял, что скорее всего меня не поняли, поэтому N раз уточнил, что я про пурсу