
Yuuri
14.02.2018
09:42:30
А можно какой-нибудь минимальный пример, где они превосходят типоклассы?

Dmitry
14.02.2018
09:43:06
"превосходят" например, в чём?

A64m
14.02.2018
09:43:12
если надо заменять импорты одних модулей на другие - они удобнее тайпклассов где надо будет для такого всякие ужасы с плохим выводом типов, к тому же, городить . Но если надо в одном куске кода разные инстансы применять - классы удобнее

Yuuri
14.02.2018
09:43:32
Например, по количеству бойлерплейта :)

Google

Dmitry
14.02.2018
09:43:47
ну например, простые вещи - нам нужно значения одних и тех же типов держать в map или еще каком словаре, но по разным ключам
в ocaml это просто решится передачей другой функции сравнения
нам же тут придется делать newype обёртки

Yuriy
14.02.2018
09:45:15
Kirill, вот как можно избавиться от def https://gist.github.com/cblp/e7d930f30d10b144318305eb24d283eb

Dmitry
14.02.2018
09:45:50
модули в окамл решают задачу модульности (!) и параметризации. в хаскеле же мы решаем эти задачи при помощи использования каких-то артефактов теории, при этом, как эти задачи решать правильно каждый решает для себя сам
периодически порождая адские костыли - например, TF или DF, неинъективность и проблемы с выводом TF или же какие-то дикие типы при использовании DF
всё это выглядит довольно костыльно.
и наводит на мысли, что используется не совсем верный инструмент для достижения желаемой цели

Yuuri
14.02.2018
09:47:53
TF DF - это что? Type/data ...?

Denis
14.02.2018
09:48:01
ну это павертулс все-таки, думаю в хаскелле помощнее

Dmitry
14.02.2018
09:48:06
type families / data families

Denis
14.02.2018
09:48:09
type family/data family

Dmitry
14.02.2018
09:48:39
первые попытки использовать их в кач.ве типизированных модулей, кмк, у меня были где-то лет пять назад

Google

Dmitry
14.02.2018
09:48:54
тогда ничего не получилось, сейчас получается
при этом я не могу сформулировать, что я не так делал пять лет назад, и что я так делаю сейчас

Kirill
14.02.2018
09:49:23
можешь нарисовать issue на предмет возможного избавления
сильной мотивации это сделать я не вижу

Yuriy
14.02.2018
09:50:35

Kirill
14.02.2018
09:50:55
абгемахт

Denis
14.02.2018
09:51:40
из этого крайне сложно четкую картинку обрисовать, чтобы взять и объяснить кому-то

Dmitry
14.02.2018
09:52:23
ну вот эти все практики - "как решать простые инженерные (ну или даже гуманитарные, если рассматривать это как специального вида литературу) задачи при помощи системы типов хаскеля" - они какие-то непрозрачные
где-то надо повесить плакат - Используй ScopedTypeVariables + опять забыл что - что бы бороть сколемы
кстати, повешу - вот опять забыл

Vitaly
14.02.2018
12:26:27

Alexander
14.02.2018
12:34:52
мы лучше знаем что автор хотел сказать своим произведением!11

Leonid
14.02.2018
12:40:03
"Книга лучше"?

Hot
14.02.2018
12:40:26
Так вот что авторы хотят сказать своими фильмами по книгам!

Alexander
14.02.2018
12:42:36
книгами по фильмам по книгам

Yuuri
14.02.2018
12:44:22
\me посмотрел бы экранизацию "Learn you a Haskell"

Kirill
14.02.2018
12:47:30
HoTT тоже неплохо будет, наверное

Alister
14.02.2018
12:47:40

Google

Alister
14.02.2018
12:48:06
а экранизация Real World Haskell - нестареющая класика

Hot
14.02.2018
12:48:31
Ну чё, давайте накраудфаундим на кинцо про хаскель.

Yuuri
14.02.2018
12:49:11
Movie 43?
> «Муви 43» получил отрицательные отклики от критиков, многие представители кинопрессы назвали его «одним из худших фильмов последних лет».
> три премии «Золотая малина» в номинациях «Худший фильм», «Худший режиссёр» и «Худший сценарий».
За что вы так книжку-то :(

Andrew
14.02.2018
12:52:25

Pineapple
14.02.2018
12:52:45
"Learn haskell for a greater good"
Во вселенной вахи. Синекожие тау хотят научить галактику хаскеллю, но повсюду натыкаются на неспровоцированную агрессию

Hot
14.02.2018
12:52:50
Не знаю, но кинчик должен быть без сайдэффектов.

Denis
14.02.2018
12:54:58

Alister
14.02.2018
12:55:15
кик
12 разгневанных мужчин
но в антураже хаскеля
обсуждают тайпклассы

Darwin
14.02.2018
12:56:33
http://www.imdb.com/title/tt5878190/

Pineapple
14.02.2018
12:57:21

Yuriy
14.02.2018
12:59:08
а где-то рядом сидит такой же комитет, но в фиолетовом
и всё разрешает

Leonid
14.02.2018
12:59:52
я начинаю недолюбливать линзы fromOctets :: Cons s s Word8 Word8 => s -> JWK

Alister
14.02.2018
13:01:07
приключения хаскелиста в мире Фоллаут

Yuuri
14.02.2018
13:01:30

Hot
14.02.2018
13:02:42
И вместо того, что бы записывать кадры на плёнку, будет создаваться новая плёнка с заданными кадрами.

Alister
14.02.2018
13:02:56
и услужливо завернут посетителя в монаду

Google

Alister
14.02.2018
13:04:04
является ли наблюдение фильма побочным эффектом?

Yuuri
14.02.2018
13:04:57
Если фильм квантовый - точно является

Hot
14.02.2018
13:05:17
А выход из пользователя зависит только от того, что он увидит на входе?
Если нет, то является.

Alister
14.02.2018
13:05:48
нет, там еще внутреннее состояние пользователя надо учитывать

Denis
14.02.2018
13:05:57
не хочу даже думать про выход из пользователя

Yuuri
14.02.2018
13:07:18
Из старого жаббер-хаскель-чата:
xxx> Мне одному от слова "coproduct" представляются акведуки, только с другим содержимым?

Leonid
14.02.2018
13:08:02
Всё ребзя, я меняю профессию https://hackage.haskell.org/package/monad-time-0.2/docs/Control-Monad-Time.html#t:MonadTime

Denis
14.02.2018
13:08:32
там еще и целых два мейнтейнера

Anatolii
14.02.2018
13:09:24
и несколько версий

Leonid
14.02.2018
13:09:47
в общем jose-jwt лучше чем jose потому что там нет вот этого вот

Alister
14.02.2018
13:10:13

Denis
14.02.2018
13:15:18

Alister
14.02.2018
13:15:41
напомнило дзюцу из Наруто

Leonid
14.02.2018
13:15:53
нет ну сами посмотрите
validateClaimsSet :: (MonadTime m, HasAllowedSkew a, HasAudiencePredicate a, HasIssuerPredicate a, HasCheckIssuedAt a, AsJWTError e, MonadError e m) => a -> ClaimsSet -> m ClaimsSet

Pineapple
14.02.2018
13:15:57
А что нас сейчас модно для row-polymorphism?

Denis
14.02.2018
13:16:23

Pineapple
14.02.2018
13:16:33
в хаскелле

Leonid
14.02.2018
13:17:09
Вот зачем там MonadTime m вместо того чтобы брать время аргументом?

Google

Denis
14.02.2018
13:17:45

Yuriy
14.02.2018
13:21:58

Leonid
14.02.2018
13:23:42
Оно тупо сверяет не протух ли токен. И законов у monadtime нет. В мастере есть инстанс ReaderT UTCTime

Pineapple
14.02.2018
13:25:03
UTCTime → a тоже инстанс?

Leonid
14.02.2018
13:26:07
Нет

Pineapple
14.02.2018
13:26:23
Недоработка

A64m
14.02.2018
13:27:28

Alexander
14.02.2018
13:28:50

Leonid
14.02.2018
13:29:05
Дичь, да?

Alexander
14.02.2018
13:29:10
вообще ад

Pineapple
14.02.2018
13:29:20
Ну у меня более ясного вопроса пока нет. Мне бы названия живых/полуживых библиотек

Leonid
14.02.2018
13:29:51
jose-jwt не умеет ECC :(

Serghei
14.02.2018
13:33:24
https://developer.okta.com/blog/2017/08/17/why-jwts-suck-as-session-tokens

Alexander
14.02.2018
13:34:17
судя по jwt.io jose самое нормальное

A64m
14.02.2018
13:34:24
generic-lens живая superrecord и bookkeeper
полуживые, rawr сгнил, есть правда его форк, который работает с 8.2 но он не на хекедже

Alexander
14.02.2018
13:34:26
а его ещё сервант использует в любом случае

Pineapple
14.02.2018
13:35:10
@A64m_qb0 спасибо, пойду смотреть

Alexander
14.02.2018
13:35:21
https://localhost/why-random-blog-posts-with-funny-images-suck-at-everything.html

Yuriy
14.02.2018
13:36:22

Denis
14.02.2018
13:36:46
superrecord взрывает компиляцию с 10+ полей

Alexander
14.02.2018
13:37:04
ну вообще MonadTime может иметь смысл если время контролит что-то ещё
например идиотизм как в логгере