@haskellru

Страница 1467 из 1551
kana
16.09.2018
16:44:09


второй инстанс же не подходит

Google
kana
16.09.2018
16:44:47
там не будет требуемого HasField name s t a b

A64m
16.09.2018
16:45:17
при оверлапе только голова считается

kana
16.09.2018
16:45:37
это поведение можно обойти?

A64m
16.09.2018
16:45:48
нет

kana
16.09.2018
16:46:05
окей, а убрать ошибку тут в принципе возможно?

A64m
16.09.2018
16:46:11
вернее разрешением оверлапа можно

kana
16.09.2018
16:46:46
и как его разрешить? Конкретный инстанс не указать, прагмы эффекта не имеют

A64m
16.09.2018
16:47:03
в смысле?

kana
16.09.2018
16:49:20
ну сначала я решил (вроде как нужно) добавить шагу рекурсии {-# OVERLAPS -}, не помогло, и я перебрал разные комбинации OVERLAP[S|PABLE|PING] у обоих инстансов в надежде что что-то прокнет, не помогло

A64m
16.09.2018
16:49:59
хммммм

kana
16.09.2018
16:51:27
даже так, я перебрал все 9 комбинаций, сейчас еще раз сделал это (ух, тык-дривен-девелопмент)

A64m
16.09.2018
16:52:17
overlapping должны били сработать, это как раз если лень думать что там кого перекрывает

Denis
16.09.2018
16:54:29
тут рекорды не смотрел? https://github.com/target/row-types

Google
kana
16.09.2018
16:57:06
там другой подход

там хэшмап полей и отдельные row, у меня список полей и роу завязаны на список полей (зависимы)

первый подход (с отдельной мапой на типах и отдельной структурой для полей) предположительно без всяких unsafe/Any/Dynamic не обойтись, так как связи/зависимости между конкретными полями и их типами нет, нужно хранить ее в рантайме (индекс типа например) и кастить

и типа это не так и плохо, но противоречит моей цели

Alexander
16.09.2018
17:00:28
можно через олегинг

введением mutiparam type classes и вытаскиванием хвоста в голову

не знаю как четкий алгоритм описать

смысл в том что разбивается класс на 2 класса оснвоной и воспомогательный

kana
16.09.2018
17:01:44
продолжай

Alexander
16.09.2018
17:02:03
во вспомогательном параметры это голова и хвост

поэтому там можно делать overlap и все чекается

но мне приходится каждый раз когда это делаю очередной раз вспоминать как это делается

вроде тебе в приват я решение какой-то задачки через этот подход кидал?

kana
16.09.2018
17:02:56
ух, выглядит как страншый костыль, типа взять проблему выбора инстанса с компилятора на себя, попробую сделать

Alexander
16.09.2018
17:03:08
не помню, кому-то умному, но кто с type level магией начинал

давно весьма

kana
16.09.2018
17:03:22
да, возможно там про тайп-левел списки что-то было, преобразование его в дерево

Alexander
16.09.2018
17:03:55
там вроде похожая фишка использовалась

Denis
16.09.2018
17:04:37
а в generic-lens как?

Alexander
16.09.2018
17:09:12
не знаю, надо бы посмотреть

Google
Alexander
16.09.2018
17:09:25
а то наверняка я новые модные решения успускаю

kana
16.09.2018
17:09:49
https://wiki.haskell.org/GHC/AdvancedOverlap - тут есть подобное?

Alexander
16.09.2018
17:10:55
1.2 похожее

kana
16.09.2018
17:18:30
1.2 похожее
хм, а там без рекурсии, с рекурсией получается, что в вспомогательном классе будет использован основной, то есть взаимная рекурсия, так и задумано?

Alexander
16.09.2018
17:18:41
да

Terminator
16.09.2018
17:25:33
Arsen Kondratiev будет жить. Поприветствуем!

kana
16.09.2018
17:43:42
а можно как-то увидеть контекст дырки? А именно, какие словарики инстансов доступны?

типа вот я сделал instance A => B x :: B => a x = _x и я хочу увидеть, что в _x у меня доступен словарик A, хотя в общем случае это же не так, хм

A64m
16.09.2018
17:45:50
почему не так?

kana
16.09.2018
17:46:10
потому что возможно есть другие инстансы B, где нет требования A



instance (flag ~ HFalse) => ShowPred a flag особенно вот это мне интересно, это какой-то способ указать дефолтное значение флага

kana
16.09.2018
17:47:29
но я не понимаю как оно работает

A64m
16.09.2018
17:47:37
A64m
16.09.2018
17:57:23
вроде нет

во втором случае False участвует в выборе инстанса

Alexander
16.09.2018
17:59:26
угу

в первом проверка идет после выбора инстанса

kana
16.09.2018
18:04:08
ух, ладно, мутил долго и много, на сегодня сдаюсь

Google
kana
16.09.2018
18:31:14
вот ща так пытался делать, ошибка не исчезла

Yuriy
16.09.2018
18:40:18
а, черт, это же просто instance ShowPred a False
C False даст определить C True в другом месте программы, а x ~ False => C x не даст

Alexander
16.09.2018
18:58:03
что у нас из memotrie хорошего есть?

Denis
16.09.2018
18:58:33
Alexander
16.09.2018
18:58:41
идеально если с поддержкой lru

были ещё

Admin
ERROR: S client not available

Alexander
16.09.2018
18:58:55
коноловоский нужно оптимизировать

иначе он не клёвый

т.е. с теор точки зрения он клёвый конечно

хотя в моём случае можно и свою мапу положить

Dmitry
16.09.2018
19:58:16
вот ща так пытался делать, ошибка не исчезла
Вот сделал https://gist.github.com/odr/7907998753255ff86b23e816b5d9b621

kana
16.09.2018
19:59:11
Dmitry
16.09.2018
19:59:21
надеялся обойтись одним классом HasLensB, но не получилось. Пришлось использовать еще HasLens

kana
16.09.2018
19:59:31
Dmitry
16.09.2018
19:59:52
Там рядом другой gist лежит на ту же тему, 4-месячной давности ;-)

тоже здесь спрашивали...

timCF
16.09.2018
20:10:56
привет! пишет кто-нибудь юнит-тесты с использованием библиотеки tasty?

мне надо как-то протестировать там функцию которая возвращает значение в обёртке IO

Google
timCF
16.09.2018
20:11:43
чёт не могу найти как это правильно сделать

timCF
16.09.2018
20:15:37
на одном значении

вот пример

https://github.com/timCF/happeteer/blob/771d568d9774364f8328ba55ca2d937e0594cabb/test/HappeteerTest.hs

вроде написано правильно но тест не компилится

Yuriy
16.09.2018
20:16:16
подключить tasty-hunit, взять оттуда testCase

Maxim
16.09.2018
20:17:00
хм, а можете по-простому объяснить в чем принципиальное отличие The Elm Architecture от FRP? извиняюсь, если вопрос звучит глупо

Andrey
16.09.2018
20:17:53
а можно объявлять временные типы данных в where внутри функции?

... where data X = X ...

Yuriy
16.09.2018
20:18:21
исправь ошибки
я намекаю, что фраза «не компилируется» несёт слишком мало информации

timCF
16.09.2018
20:18:33
Yuriy вот такая ошибка при попытке запустить тест • No instance for (Eq (IO (Scraped URL))) arising from a use of ‘assertEqual’

Andrey
16.09.2018
20:19:01
нет
ок

timCF
16.09.2018
20:19:19
мои собственные типы deriving (Show, Eq, Ord)

я думаю тут вся сложность в IO

Страница 1467 из 1551