Alexander
даже {-# UNBOX #-} ничего не даст
Alexander
UNAPCK
Кабачок
Все на Sixteen!
Cheese
но ведь все думают, что -funbox-strict-fields работает
Leonid 🦇
fun box
Кабачок
C#
Alexander
но ведь не для полиморфных полей
Alexander
если !Int написать, или даже !ByteString
Leonid 🦇
@cblp_su все знают что полиморфные не анбоксятся
Alexander
то не будет коробки
🍅Ťомат
Вы мне щас мир сломаете.
Cheese
А NPE где-то ещё, окромя Джавы бывают?
на других платформах оно называется SIGSEGV
Cheese
Leonid 🦇
неизвестный размер?
Alexander
методы которые работают с данными
Vasiliy
а сочетание C с NULL даёт UB - это вообще сказка
Alexander
надо все ж специализировать под размер
Leonid 🦇
иначе для ацессоров надо дикт передавать
Cheese
а, понятно
A64m
а как на TF?
как-то так https://github.com/ekmett/unboxed-containers/blob/master/Data/Set/Unboxed.hs#L1883
Alexander
щас попробую статью найти
Leonid 🦇
@A64m_qb0 ну это на любителя...
Cheese
а если украсть из Раста какой-нибудь Sized a => Foo a?
Alexander
ведь этот юзкейс был в статье где вводили как основной кейс идин из
Leonid 🦇
@qnikst да я понял, там надо реимплементить все операции же.
Alexander
да
Alexander
ну с рюкзаком же тоже надо будет
Leonid 🦇
а я думал нет :(
Alexander
(мне кажется)
Vasiliy
господа, подскажите чтиво про профункторы, что-нибудь похожее на lens over tea
Alexander
т.е. ты пишешь пачку функций container->primitive и радуешься
Vasiliy
а то либо совсем простые статьи находятся, либо лютая дичь про теоркат
Alexander
@kostanakis да
A64m
@qnikst да я понял, там надо реимплементить все операции же.
конструкторы надо, ну и самые базовые операции
Cheese
Alexander
Vasiliy на school of haskell было
🍅Ťомат
Фига я умный.
Alexander
profunctos are easy или что-то такое
A64m
но и этого достаточно чтоб почти никто так не делал
Alexander
да
Alexander
@A64m_qb0 ты не помнишь имя статьи?
Vasiliy
ага, нашёл, спасибо, почитаю
Alexander
вроде у SPJ было
A64m
fun with type functions
Vasiliy
вот такую нашёл I love profunctors. They're so easy.
Alexander
да оно
Leonid 🦇
профунктор засасывает слева, гадит справа
Alexander
Vasiliy похоже на то
Alexander
@A64m_qb0 пасиб
Alexander
@lonokhov https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/typefun.pdf
Vasiliy
ну я понимаю, что слева вход, справа выход, их можно мапить, но нафейхоа? как оно применяется
Alexander
(->)
Alexander
пример, как он применяется?
Vasiliy
проблема в том, что это чуть ли не единственный пример, который я пока нашёл
Alexander
а ещё стрелки клейсли (не помню как они в профункоторах зовутся)
Alexander
и вообще стрелки, это profuctor+strong
Alexander
(правда лично я редко профункторами пользуюсь, тем более кроме ->)
Cheese
у Волкова запросы к БД являются профункторами
Alexander
ну они стрелки
Alexander
как стрелки, как Arrows
Vasiliy
в opaleye тоже профункторы и стрелки
Alexander
любая стрелка - профунктор
Cheese
ах да, в качестве примеров стрелок часто приводят всякие парсеры и электрические схемы
Cheese
вот тебе и примеры профункторов
Alexander
решалки ODE
Alexander
вообще линзописалеты должны быть хорошо знакомы
Alexander
там же были интересные примеры?
Alexander
*линзописатели
Alexander
во всяком случае в nicta точно через них что-то строилось
Cheese
множество линзописателей состоит из одного Кметта
Vasiliy
ну я читал статейку про линзы на профункторах, только ничерта не понял
Alexander
линзопользователей тоже
Alexander
линзы это ж функция
Alexander
значит профунктор : ]
Alexander
а вот для чего оно используется я не помню, вроде когда призмы строятся?
Alexander
оно = этот факт
Cheese
линза как функция скучна