Alexander
ага
Зигохистоморфный
СRex?
Зигохистоморфный
или как его там
Alexander
мне ж нужна функция R -> Maybe t
Зигохистоморфный
Alexander
ну или t In tt => R tt -> t
Alexander
имя структуры whatever it is
Зигохистоморфный
типа опциональный деструктор?
A64m
СRex?
речь про https://ghc.haskell.org/trac/ghc/wiki/Plugins/TypeChecker/RowTypes/Coxswain видимо
A64m
там особо и не доделано, ну и на гитхабе где-то год активности не видно
Зигохистоморфный
а я про https://wiki.haskell.org/CTRex говорил походу
A64m
чет у меня никак руки не дойдут бенчмарк разных рекордов сделать, я уже и парсер для -v выхлопа накостылил
Зигохистоморфный
чет у меня никак руки не дойдут бенчмарк разных рекордов сделать, я уже и парсер для -v выхлопа накостылил
знаю про такой список https://docs.google.com/spreadsheets/d/14MJEjiMVulTVzSU4Bg4cCYZVfkbgANCRlrOiRneNRv8/edit#gid=0
A64m
не вижу самого главного показателя, на скольки полях гхц загибается
Зигохистоморфный
не вижу самого главного показателя, на скольки полях гхц загибается
вот можешь дополнить) я знаю ты любишь такое делать, например мучал хештаблицы и generic lens
A64m
я ничего не люблю
Alexander
@xgrommx мне важны не имена полей, а типы
Alexander
т.е. тип это имя поля
Зигохистоморфный
что-то типа typelevel list?
Alexander
это сильно уменьшает интерфейс и упрощает жизнь
Alexander
обычный гетерогенный список
Alexander
с typelevel информацией о том, что там лежит
Alexander
что там *точно* лежит
Alexander
т.е. мне норм если там будет лежать больше, чем я мне надо, просто я не смогу это достать
Зигохистоморфный
это какой-то opened type sum?
Alexander
да
Зигохистоморфный
да
fastsum смотрел?
Alexander
> project :: forall e r v. e :< r => Sum r v -> Maybe (e v) wtf>
Alexander
?
Alexander
нет опять же это оверкил для задачи
Alexander
так же пакеты инстансы которых я не могу увидеть до конца при масштабе 10% в браузере это не интересно
Alexander
пакет норм, но для другого
Alexander
опять же он не плоский
Alexander
т.е. мне нужен более менее безопасный стораж поверх массивов с индексированием по типам, logN меня устраивает
Зигохистоморфный
мб что-то такое? https://github.com/i-am-tom/learn-me-a-haskell#oneof но это вроде обычный Union там еще есть HList Bag HTree
Alexander
а почему бы мне не использовать typeremap?
Alexander
HList HTree не плоские
Alexander
Bag тупо совсем не то
Зигохистоморфный
@qnikst есть еще http://hackage.haskell.org/package/union https://hackage.haskell.org/package/open-union но в одном из них винил
Alexander
да я в курсе
Alexander
ты так говоришь, как будто я этих пакетов не видел
Зигохистоморфный
ну я так, просто)
Alexander
но я даже если у них будут хорошие свойства я не знаю почему я должен предпочесть их решению от @chshersh
Alexander
у них кавайная организация, и даже если сингапур снесёт землетрясением, то наверное будут поддерживать пакеты
Alexander
да
Зигохистоморфный
я конечно видел еще http://hackage.haskell.org/package/dependent-map-0.2.4.0/docs/Data-Dependent-Map.html http://hackage.haskell.org/package/dependent-sum-0.4/docs/Data-Dependent-Sum.html
Alexander
там бойлерплейта много
Alexander
вроде
Alexander
я где-то использовал в игрушечных вещах
Зигохистоморфный
а это? http://hackage.haskell.org/package/type-level-sets
Alexander
а разве vrom911 не в вашей огранизации и её тоже не убьет землетрясением, которое уничтожит сингапур?
Alexander
а чорт, да я там сослаться что решение твое, ок
Alexander
я думал, я корректнее написал, поправка принята
Dmitrii
у них кавайная организация, и даже если сингапур снесёт землетрясением, то наверное будут поддерживать пакеты
Спасибо за приятный отзыв ^_^ Если возникнут какие-то issue с библиотеками, то с радостью поможем! 🙂 Всегда можно открыть issue и обсудить! Я вот typerep-map как раз использую для введений клевой штуки в новой библиотеке (скоро еще один блог пост будет). Всегда приятно, когда свои же библиотеки нужны себе же 🙂
Dmitrii
я конечно видел еще http://hackage.haskell.org/package/dependent-map-0.2.4.0/docs/Data-Dependent-Map.html http://hackage.haskell.org/package/dependent-sum-0.4/docs/Data-Dependent-Sum.html
Стать лучше dendent-map было одной из мотивацией для создания typerep-map. dependent-map по сути является копипастой кода библиотеки containers, только сам тип изменен, чтобы поддержать индексирование по типам. Согласно бенчмаркам, typerep-map в 3-4 раза быстрей dependent-map на поиске. Но поскольку реализована на массиве, то вставка медленней. Хорошо подходит, когда поисков намного больше, чем вставок) Оказалось, что таких юзкейсов не так уж мало.
Alexander
прикольно что у вас есть время на опенсорс прилично
Dmitrii
напомни ваш блог
Пожалуйста 🙂 * https://kowainik.github.io/posts
Alexander
вообще для меня typerep-map скорее похожа на typemap снойманову или что там в vault, только а. с безопасным интерфейсом б. тип это ключ в. быстрее на моих кейсах
Alexander
у меня были похожие штуки, но я а. не выделял это в пакет, б. или не безопасные или с именами, а не по типам
Alexander
а тут все за меня сделано
Dmitrii
прикольно что у вас есть время на опенсорс прилично
На работе поощряют опенсорс, и хотят, чтобы люди развивались. Полдня в неделю надо отводить изучению новым штукам или проектам. Но вообще да, пока что и просто на Haskell писать очень увлекательно, столько нового можно выучить и сделать, поэтому есть время и желание 🙂
Cheese
@qnikst, это телеграм чатик, а не твиттер, напиши то, что ты думаешь про хаскель и db
Alexander
я ж писал
Cheese
[количество цензарной ругани превысило размер сообщения]
Alexander
у нас нету ни одной приличной low level либы работающей с pg
Alexander
все работает поверх libpg
Alexander
ты смотришь графики rps, и видишь проседание на 20% при тупых запросах мелких
Alexander
у тебя большие и ты ловишь RTS на вечном spin lock где оно проводит 80% cpu времени на threaded RTS
Alexander
ибо GC
Alexander
приличной либы опубликованной на hackage
Cheese
все работает поверх libpg
тебе нужен прябой байндинг к libpq?
Alexander
МНЕ НЕ НУЖЕН libpq
Alexander
вот postgres-wire то что мне нужно
Alexander
мне нужна нативная либа общающаяся с pg напрямую
Cheese
а разве с Посгресом можно общаться мимо libpq? я не в курсе
Alexander
ну сокет у него есть, куда коннект идет значит можно
Alexander
в go например нативный драйвер