https://combot.org/chat/-1001043143583 Ссылки на полезные ресурсы: https://ruhaskell.org/links.html ; Информация о мероприятиях: https://gist.github.com/qnikst/a96cac661be80d126d0829f2ced1916e
вместоdata Expr
= Lit Int
| Plus Expr Expr
| If Expr Expr Expr
делатьdata ExprF expr
= Lit Int
| Plus expr expr
| If expr expr expr
type Expr = Cofree ExprF Location
но это сразу жопа при всяких матчах, рекурсивные функции, короче все как в ghc c Located постоянным, ток не нужно будет поле добавлять явно
можно🤡 налепить🤡 экзистенциальный🤡 констреинт🤡 в виде🤡 имплисита🤡 формы🤡 data Var = (?varPos :: SrcSpan) => MkVar {...}
🤡
Придётся обновить все конструкирования🤡 Var, добавив туда let ?varPos = ... in ...
, но реконструкция Var будет работать без лишней бюрократии до тех пор пока сохраняется лексический скоуп деконструкции
Были бы рекорды как в окамле (или, прости господи, объекты), просто бы в каждый ещё одно поле воткнула
Читать полностью…Если убрать фильтрацию, то все выглядит так, как будто работает правильно (во всяком случае в простых сценариях, которые к меня были)
Читать полностью…Работает, в принципе ок либа. У них правда там свой AST упрощённый, это не тот что в ghc-lib-psrser
Читать полностью…Из хаскельных тем для вскода есть hackage-theme и groovy lambda.
Читать полностью…Спасибо за ответы! Да, с id
явно промашка вышла, с другой функцией работает:
ghci> x = [("HELLO", 123)] :: Map Text IntЧитать полностью…
ghci> x & at "WORLD" . non 321 %~ (+1)
fromList [("HELLO",123),("WORLD",322)]
для любой оптики кажется должен соблюдаться закон что over o id = id
Читать полностью…Добрый день! Есть ли идеи почему два выражения работают по-разному? Для кейса когда ключа нет вроде как поведение должно быть одинаковое
ghci> x = [("HELLO", 123)] :: Map Text IntЧитать полностью…
ghci> x & at "WORLD" . non 321 %~ id
fromList [("HELLO",123)]
ghci> x & at "WORLD" ?~ 321
fromList [("HELLO",123),("WORLD",321)]
самый оптимальный (но мною нелюбимый) вариант это Cofree
Читать полностью…А это вообще трэш какой-то. Короче, нет нормального способа проаннотировать ADT AST, походу
Читать полностью…Про парсинг со спанами у серокеля есть https://serokell.io/blog/parsing-with-happy
Читать полностью…Есть интерпретатор https://github.com/Gabriella439/grace
Читать полностью…Можно кстати ограниченную форму ттг сделать в виде индекса который только на айденты влияет, населяя их дополнительной инфоомацией
Читать полностью…Кто-нибудь знает почему пандок вырезает из docx все стили для параграфов кроме definition и а из in-line элементов вообще все? Спрашивать в трекере не охота там и так 900+ репортов и с 2022 как-то все почти не движешься
Читать полностью…кто-нибудь пользуется https://github.com/google/ghc-source-gen/ ?
оно живое или все забили?
Начал работу над этим. Надеюсь, что repo owners меня поддержат. Если у вас есть какие-то идеи на этот счёт/просто интересно — вот issue с ссылками на WIP документацию (в том числа и в отрендеренном html формате).
Читать полностью…расширение Haskell есть, и хорошо.
радужные скобки ещё могут быть полезны, на ваш вкус