
A64m
26.09.2018
16:22:42
т.е. вам не нарвится что призма - это траверсал?

Yuriy
26.09.2018
16:22:51
да

A64m
26.09.2018
16:22:58
но почему?

Yuriy
26.09.2018
16:23:05
в частности, это тоже

Google

Yuriy
26.09.2018
16:31:35
траверсал может найти 2 результата, а призма не может
поэтому призма не может зависеть от Semigroup

A64m
26.09.2018
16:33:48
она и не зависит, зависит сверка, как иначе сворачивать-то

kana
26.09.2018
16:35:25
то, что призма как-то завязана на траверсал, выглядит как деталь реализации линз, протекшей абстракцией

Yuriy
26.09.2018
16:35:46
нужен {-# LANGUAGE NoHarmfulInstances #-}

A64m
26.09.2018
16:36:53
нету, вы применили свертку к ней

Yuriy
26.09.2018
16:37:09

A64m
26.09.2018
16:37:34
поскольку призма может указывать, а может не указывать на что-то с инстансом моноида - свертка удалась
не правда, применили
lens, mezzolens:
λ> Nothing ^. _Just :: String
""
optics:
λ> Nothing ^. _Just
<interactive>:4:1: error:
• No instance for (Is A_Prism A_Getter) arising from a use of ‘^.’

Google

Yuriy
26.09.2018
16:38:34
так это же код с ошибкой

A64m
26.09.2018
16:39:01

Yuriy
26.09.2018
16:39:44
нет, я применил view, но не fold

A64m
26.09.2018
16:40:16
так это же код с ошибкой
если вы считаете что код в котором вы применяете свертку "с ошибкой" - это не значит, что вы свертку не применили

Yuriy
26.09.2018
16:41:37

alexknvl
26.09.2018
16:42:19
но не иметь instance Traversable Maybe было бы очень грустно

A64m
26.09.2018
16:42:30
чего?

Yuriy
26.09.2018
16:43:45

A64m
26.09.2018
16:44:30
я бы сказал, что иерархия оптики - обязательная фича, все либы без нее не взлетели

Yuriy
26.09.2018
16:44:32

A64m
26.09.2018
16:45:06
но любая фича "иногда вредная", с помощью чего угодно можно написать код, который вы не хотели писать
т.е. буквально, нету вообще никаких исключений

Pineapple
26.09.2018
16:45:51
data Foo a = Foo { field :: Map Int (Maybe a), .. } deriving (Foldable,Traversable)

A64m
26.09.2018
16:46:21
и писать не тот код, который вы хотели с помощью функций про которые вы не знаете - вообще очень легко

Pineapple
26.09.2018
16:46:34
А дальше плач и скрежет зубовный без инстансов для Maybe
С парами та же история, кстати

Yuriy
26.09.2018
16:47:04

A64m
26.09.2018
16:47:32
ну, говорить что инстансы для пар не нужны, это следуюший уровень после говорения что id и const не нужны

Google

A64m
26.09.2018
16:49:07
без "подтипирования" оптики слишком убого все, и для автора библиотеки и для пользователя
это проблема всех этих liftM и liftA и sequence sequenceA только умноженная в 100 раз

Yuriy
26.09.2018
16:52:18

A64m
26.09.2018
16:52:33
liftM

Yuriy
26.09.2018
16:53:54
можно им просто не пользоваться. вреда такого не приносят, как сворачивание пар

A64m
26.09.2018
16:54:46
так приходилось пользоваться, пока "подтипирование" монад и аппликативов не ввели
но если до AMP дублирование кода еще можно было потянуть, то с гексированием кода уже не так весело

Yuriy
26.09.2018
16:55:59

A64m
26.09.2018
16:56:14
в обоих случаях примерно одинаковое подтипирование же
это буквально одна и та же проблема в разных либах просто
не было бы ее, и AMP бы не делали

Alexander
27.09.2018
10:09:18
а new-dist уже завезли?
чот не удобно, приходится cabal sdist делать, которому нужно старым методом зависимости

A64m
27.09.2018
10:21:18
да

Anton
27.09.2018
10:53:44
Сегодня аж пригодился guide.aelve.com, посмотреть про CPP магию кабала

Alexander
27.09.2018
11:16:39
где там магия?
мин вершоны, версия компилятора и это все?

Anton
27.09.2018
11:17:08
Ага, наизусть то не помню уже
а по манам кабала не гуглится

Google

Alexander
27.09.2018
11:18:24
оно грепается по dist/build
если знать что оно вообще есть

A64m
27.09.2018
11:38:47
хорошие слайды у доклада по generic-lens

Alexander
27.09.2018
12:30:06
"да" как в завезли?

A64m
27.09.2018
12:32:14
да, завезли в 2.4
(я, правда, им не пользовался, может там какие-то подводные грабли есть)

Yuriy
27.09.2018
12:36:24

A64m
27.09.2018
12:38:35
https://github.com/kcsongor/talks/blob/master/ICFP18/generic-lens.pdf

Yuriy
27.09.2018
12:44:25

Anton
27.09.2018
20:01:02
Как понимаю у cabal new нет аналога stack —file-watch?

Anatolii
27.09.2018
20:04:57

Anton
27.09.2018
20:05:18

Anatolii
27.09.2018
20:05:28
я уже не помню что делает —flie-watch
давно стаком не пользуюсь

Anton
27.09.2018
20:05:38
Ребилдит, если увидел изменения

Anatolii
27.09.2018
20:05:44
но оно при сохранении пересобирает весь проект
да

Anton
27.09.2018
20:05:55
Спасибо, сча попробуем

Anatolii
27.09.2018
20:06:08
но это надо ставить ghcid

Anton
27.09.2018
20:06:11
как раз при переезде со стака на никс надо

Google

Anton
27.09.2018
20:06:21
ну так никс притащит ghcid

Anatolii
27.09.2018
20:06:30
ага

Anton
27.09.2018
20:12:16
ага
оно работает лучше стака раза в пять, я даже переключиться не успеваю между редактором и консолью

Anatolii
27.09.2018
20:12:55
привык что просто все быстро

Anton
27.09.2018
20:13:52
стак так отправится прямиком в аналы истории

Alexander
27.09.2018
20:16:26
/me задумался, а не бросить ли к чертям стек в последнем проекте
если там все равно никс, то даже макосеры не будут страдать

Anatolii
27.09.2018
20:18:38
товарищи,а как мне попробовать переключить версию компилятора в никс проекте быстрее всего?
то что я нахожу - мне надо много правок в свой никс файл вносить

Alexander
27.09.2018
20:19:37
я вроде только версию ghc менял в build-inputs
но это не точно

Anatolii
27.09.2018
20:20:20
https://github.com/Gabriel439/haskell-nix/blob/master/project1/README.md#changing-the-compiler
я вот такой способ нашел

Alexander
27.09.2018
20:21:40
я в shell.nix в buildInputs только haskell.compiler.ghcXXX менял
но может я что не то делал

Anton
27.09.2018
20:21:58

Alexander
27.09.2018
20:22:20
но ради них стек держать не очень хочется
и stackage2niix

Anton
27.09.2018
20:24:54