Евгений
A64m
в хаскеле надо было как в окамле делать простые и убогие рекорды и навороченные. Но нет, такое решение почему-то затряло, как будто все остальные фичи в хаскеле не продублированы.
A64m
с рекордами и модулями комитетчики нас, хаскелистов, сильно подвели
Viacheslav
Видели бы вы рекорды в идрисе
Viacheslav
вот это топчик
Viacheslav
там даже можно поля называть одинаково в разных рекордах в одном модуле
Viacheslav
и никаких проблем с этим нет
Alexander
прямо как в haskell?
Viacheslav
угу, если никаких проблем нет — это подключить пару расширений и все равно работает через одно место
Viacheslav
Alexander
GHCi, version 8.0.2: http://www.haskell.org/ghc/ :? for help
IO error: "//usr/share/ghc-vis-0.8/ghc-8.0.1/ghci" does not exist
Loaded GHCi configuration from /home/qnikst/.ghci
[1 of 1] Compiling Main ( 99877.hs, interpreted )
Ok, modules loaded: Main.
*Main> :i A
data A = A {Main.foo :: Int} -- Defined at 99877.hs:1:1
*Main> :i B
data B = B {Main.foo :: String} -- Defined at 99877.hs:2:1
Viacheslav
никаких проблем с этим не встречал
A64m
но в идрисе через это место вообще все имена работают
Alexander
я встречал
Alexander
бесит вечно когда требуются квалифицированные имена в каждой третьей строке
Alexander
если вектора и списки в одном файле есть, например
Alexander
с конструкторами та же фигня
A64m
при том что типами и так все проаннотировано, все равно не понимает ничерта, давай, давай, квалифицируй, к такому меня жизнь не готовила
Viacheslav
Viacheslav
любым из
Viacheslav
A64m
foo (a :: A)
A64m
foo (b :: B)
Viacheslav
и что с этим не так?
A64m
вербозно, но так рекорды в хаскеле вообще не нужно применять, надо через RecordWildcards
Leonid 🦇
или lens
Viacheslav
ну потом просто возникает проблемы с тем, чтобы достать из рекорда что-то и проекции не работают(
Alexander
в любом случае с идрисом было хуже
A64m
Alexander
количество боли даже при простых задачах из курса Брагилевского было слишком много
A64m
Viacheslav
и могу сказать, что убогие рекорды в хаскелле по сравнению с идрисом боьше всего бесили
Viacheslav
но это ИМХО
Viacheslav
может я тоже не разобрался
Leonid 🦇
А нет предложений для расширения отключающего вообще генерацию ацессоров? а то префиксить линзы (или поля) бесит чутка
Alexander
ну мне тяжело, я не могу поработать на идрисе сравнимое с haskell время, он сдохнет раньше
A64m
меня бесит плохой вывод типов, хаскельные рекорды бесят, но и близко не как плохой вывод типов, так что я не фанат TDNR
Viacheslav
В идрисе нет вывода типов
Leonid 🦇
Viacheslav
В идрисе зависимые типы и там задача вывода типа в общем случае неразрешима
Vladislav
А в DependentHaskell зависимые типы и вывод типов, вот так на.
Alexander
а у нас есть TClosableTChan которые клонировать можно?
Alexander
@int_index насколько мне известно в общем случае в зависимых типах задача неразрешима
Viacheslav
мне казалось что вроде как раз разрешима, если какую-то совсем дичь не брать
Viacheslav
в System F с этим все хорошо
Alexander
общем случае = с зависимыми типами
Viacheslav
в хаскелле нет зависимых типов
Viacheslav
пока нет депендент хаскелля
A64m
Alexander
в telegram не хвататет тредов
Leonid 🦇
/me всегда выступал за сильные, независмые типы.
Vladislav
Антон
A64m
Антон
Правда, я не считаю это хорошей вещью
Viacheslav
Vladislav
Vladislav
А дальше Эйзенберг рассказывает про то, как он печёт пироги
Leonid 🦇
нормальных языков не бывает
A64m
Vladislav
И вот у нас есть singletons, для которых вывод типов уже есть. А потом мы заменим их на pi-квантификатор, и что, вывод типов куда-то деться должен?
A64m
ну и линзы соотв. можно
Leonid 🦇
Leonid 🦇
это всё меняет
Vladislav
А в Idris сказали "у нас dep types!!1" и забили на inference.
A64m
A64m
у завтипщиков просто теперь парадигма такая, вывод типов нам не интересен, мы теперь программы выводим