Denis
а поменьшеньте-расскажите, если разберетесь детальнее плз?
Leonid 🦇
в общем семейства не могут оверлаппится. оверлапятся инстансы у класса. А семейства в таком случае просто не должны конфликтовать
Leonid 🦇
т.е. в одном случае правая сторона просто ТОЧНЕЕ чем в другом
Leonid 🦇
в одном a в другом (Headers h a)
Leonid 🦇
https://gist.github.com/sopvop/1b6bdbf35dc1d5105a061ef295836e15#file-overlap-hs-L89 вот такое пробую решение
Denis
Leonid 🦇
в том же смысле в котором в Overlappable
Ю ли я? 🤔
Посоветуйте нуб-френдли библиотечку для простенькой графики и гуи. В своё время очень радовал Gloss, но не хватало виджетов (кнопочки, текстбоксы всякие).
Leonid 🦇
ну не точнее а уже. я х.з. какое слово правильное, я CS не изучал
типа [Int] уже чем [a]
Denis
ассоциированная TF предположительно как открытая должна работать, там ограничения все на LHS
Denis
хммм, непонятно тогда почему такое ограничение
Leonid 🦇
Ну смотри, есть Overlappable TF для [a], и для [Int]. TF из первого инстанса унифицируется со вторым.
Leonid 🦇
т.е. можно использовать в том же случае
Ю ли я? 🤔
кана
Leonid 🦇
вот, да
Denis
я рассуждаю так: у ассоциированных семей правила должны бы быть аналогичны открытым, т.к. проблемы проистекают из того, что они могут быть объявлены в разных модулях и клоузы будут подгружены в разном порядке
Denis
Головы инстансов говорят о том как выбрать один в любом из случаев
Ю ли я? 🤔
Браузер, в принципе, подойдёт. Спасибо, потыкаю
Denis
как это может налагать ограничения на RHS ассоциированных TF я не понимаю
Aleksei (astynax)
Leonid 🦇
ещевопрос, в продолжение борьбы с Servant. как в ghci развернуть TF? ServerT blah blah -> в подлежащий тип
Denis
:kind!
кана
о, а я в прокси всегда сувал
Зигохистоморфный
а я юзал :kind!
Leonid 🦇
:kind! не умеет переменные
Denis
конкретизируй их
Leonid 🦇
ну приходится
Alexander
Prelude> :kind! (forall a. Q a)
(forall a. Q a) :: *
= Int
Alexander
у меня все умеет
Alexander
Prelude> :set -XTypeFamilies
Prelude> type family Q a where Q a = Int
Alexander
если не разворачивает - значит правила не позволяют выбрать
Denis
Что есть функтор, а что монада?
Тут такая цепочка: сначала идёт функтор, затем, как надстройка над ним, идёт аппликативный функтор, а затем уже, как надстройка над аппликативом, идёт монада. Поэтому всё, что Monad, оно, в свою очередь, и Applicative, и Functor.
Leonid 🦇
ААААААААААА
Leonid 🦇
Проклятый сервант
Leonid 🦇
сволочь
Leonid 🦇
понапишут на закрытых TF кода, а потом кроме Verb ничего не подходит
Leonid 🦇
вот как жить после этого?
Leonid 🦇
нет, всё норм
Leonid 🦇
дислексия попутала
A64m
тем временем вышла версия generic-lens с траверсалами https://github.com/kcsongor/generic-lens#traversals
кана
Leonid 🦇
Сколько гигов оперативы при компиляции жрёт?
Denis
все
Leonid 🦇
так слак уже все сожрал
Denis
либо линзы, либо слак
Denis
pick you challenger
Денис
Что делать если хочется объявлять два поля с одинаковым именем в разных структурах, а юзать префиксы не хочется?
Denis
юзать префиксы
Денис
Блин, ну это ж вообще ужас
Leonid 🦇
DuplicateRecordFields + lens или NamedFieldPuns
Denis
наименьший ужас
Денис
Я смотрю вот во frege нормально сделано
Leonid 🦇
вот бы сейчас на frege пописать
Денис
вот бы сейчас всем полям префиксы писать
Денис
Leonid 🦇
у меня присутсвуют
Денис
Стоит овчинка выделки?
A64m
первое с 8.0, второе с допотопных
A64m
да, стоит
Denis
Ну пожалуйста: Classy lens, DuplicateRecordFields, всякие прочие заигрывания с row-polymorphism. Только префиксы все еще юзабельнее.
A64m
я с recordWildcards использую, в основном
Leonid 🦇
еще и snake_case приходится использовать
Denis
deriveJSON умеет принимать конвертилки для названий полей
Denis
для переделывания верблюдов в змей и наоборот
Leonid 🦇
что самое смешное, с deriveJSON еще норм. так как TH код это вполне код. А вот Generic хрень хуже
Denis
deriveJSON гораздо удобнее
Leonid 🦇
Уже derive anyclass нельзя
Leonid 🦇
ну я не готов писать deriveSwagger
Leonid 🦇
извини
Denis
со схематикой не надо этим дрочем заниматься ;<
Denis
(надо другим)
Denis
ну мы правда не сваггер генерим, а json-schema выгружаем
A64m
да нормально с дупликейт филдс, в редких случаях когда не с вайлдкардами используются поля - можно и тип рекорда проаннотировать
Denis
можно и сваггер сделать оттуда же, но мне лень
A64m
а префиксы везде будут, в том числе и там где они не нужны
Leonid 🦇
/me хотел бы отметить что swagger-ui говно как и всё что делают вебаны