
Index
20.12.2017
12:04:33
экзотика, пока не сломается

A64m
20.12.2017
12:05:14
В смысле?
старый который переэмель с лет-полиморфизмом и тот, когда включаются какие-то поверхностные проявления FC и, соотв. вывод типов не Дамас-Милнер становится

Index
20.12.2017
12:05:31
Ну тут явно больше градаций
А под капотом все равно один и тот же OutsideIn

Google

A64m
20.12.2017
12:06:12
градации не градации, а тут мощный водораздел между ML++ и недопруфнедоассистентом

Index
20.12.2017
12:07:26
> а тут мощный водораздел
Что делает его мощным? Стиль кода, или технически что-то?

A64m
20.12.2017
12:07:54
система типов

Index
20.12.2017
12:09:09
Я не вижу четкой границы, каждое расширение по-отдельности как-то модифицирует систему типов.

A64m
20.12.2017
12:09:53
грубо говоря, хаскель при этом аж целое семейство языков сменил, Д-М хаскель - это эмельный родственник, а модерновый - совсем нет, нет лет-полиморфизма - не ML

kana
20.12.2017
12:17:39
Add * :: *. Why do this? One alternative is to go the route of Coq and Agda and have an infinite tower of type universes. But, this adds a lot of complexity. These languages take this route because * :: * makes a language inconsistent as a logic. However, Haskell is already inconsistent as a logic (because of undefined and GHC.Exts.Any) and so we don't have to worry about a new source of inconsistency.
Очень нравится этот абзац.

Leonid
20.12.2017
12:18:49
чёрт, сосисочная вечеринка в сауне срывается

A64m
20.12.2017
12:21:55
не буду даже шутить на эту тему, а то у меня с этим митапом какие-то сорокинские асоциации

Leonid
20.12.2017
12:22:53
День функциональщика

Alister
20.12.2017
12:24:54
карируете там небось

? animufag ?
20.12.2017
12:27:53
как вообще к этому пришли? на последнем митапе кто-то встал и предложил мол давайте в сауну и все зааплодировали и каждый сказал что обязательно пойдёт?

Kirill
20.12.2017
12:34:32
@qnikst а мемори профайлер как-то можно заставить правильное время рисовать?

Google

Alexander
20.12.2017
12:40:22
не видел, вроде только cpu

Kirill
20.12.2017
12:47:26
я про время снятия сэмплов
запускаю приложение на 1 минуту
в профайле хипа последняя строчка
END_SAMPLE 3.777820
писать в eventlog, там нормальное время?
блин, eventlog это только в 8.2 :(

Alexander
20.12.2017
13:04:59
там cputime не знаю что с этим сделать
я понял про что ты

Kirill
20.12.2017
13:09:00
даж тикетов об этом нет? а какой именно cputime там?
евентлог по идее должен нормальное же время давать, но не понимаю как с графиками сэмплы соотносить тогда

Alexander
20.12.2017
13:19:21
CPU_TIME это часы которые меряют сколько твоя программа занимала cpu
т.е. если оно жрет проц то будет похожее время, если в idle дофига то твое время будет меньше реального
не уверен что есть баг

Kirill
20.12.2017
13:23:53
в данном случае почти idle, да

Denis
20.12.2017
13:35:21
https://github.com/ekmett/ekmett.github.com/blob/master/presentations/Functional%20Reporting.pdf

Евгений
20.12.2017
15:29:17

A64m
20.12.2017
15:32:15
по умолчанию OutsideIn как HM работает

Евгений
20.12.2017
15:34:19
Странно, а почему не system f второго ранга?

A64m
20.12.2017
15:35:43
почему странно?

Google

Denis
20.12.2017
15:37:44

Евгений
20.12.2017
15:38:10
почему странно?
Потому что system f2 это расширение Х-М, не нарушающее его свойств же
Почему System F не включают понятно — тайп инференс рушится

kana
20.12.2017
15:39:36
а что system f2 дает над hm?

Евгений
20.12.2017
15:40:17
Можно ~грабить корованы~фигачить экстенсионалы

kana
20.12.2017
15:41:09
ну экстенсионалы тоже по дефолту не включены, нужно
-XExistentialQuantification

A64m
20.12.2017
15:41:38

Alexander
20.12.2017
15:42:06
но было время..

kana
20.12.2017
15:42:13
а что тогда делает Rank2-расширение? Алиас на RankN?

A64m
20.12.2017
15:42:25
да

Евгений
20.12.2017
15:43:06
Я не о расширении синтаксиса, а о (forall r. (forall a. X) -> r)

Denis
20.12.2017
15:43:11

Alexander
20.12.2017
15:43:26
было время это оно не так было

Евгений
20.12.2017
15:43:41
да
А OutsideIn гарантирует инференс, если у нас только rank2?

Denis
20.12.2017
15:43:58
ну еще ExistentialQuantification есть вроде

A64m
20.12.2017
15:44:02
не помню

Евгений
20.12.2017
15:45:31
Кстати, почему в ghc такой странный для экзистенционалов синтаксис. Почему forall????

Denis
20.12.2017
15:46:27

kana
20.12.2017
15:46:49
чтобы кейворды не плодить

illiatshurotshka❄️
20.12.2017
15:48:12
да вроде вполне адекватно

Google

illiatshurotshka❄️
20.12.2017
15:48:19
в расте &dyn Typeclass

kana
20.12.2017
15:49:36
ну вопрос был типа почему не exist

adam
20.12.2017
15:51:16

Евгений
20.12.2017
15:52:46
Что такое "дуализм" эндоморфизма? И как профункторы связаны с forall?

kana
20.12.2017
16:03:30
я правда пока не могу понять это равенство совсем
например
exist n : M, even(n) -> |M| > 0 =
(forall n : M, even(n)) -> |M| > 0
тут же первое утверждение верное, а второе нет.
О, так завтипы в хаскеле это не миф и не почти невозможно будущее, есть реально движение в эту сторону, тот же TypeInType с ghc8

Alexander
20.12.2017
17:34:43
много туда движения

Admin
ERROR: S client not available

kana
20.12.2017
17:34:50
и то, что я недавно нашел странную вещь * :: * - не баг, это новая фича - первая фаза внедрения завтипов

Xeta Felius
20.12.2017
17:38:01
С хаскелем не соскучишься T_T
?

Denis
20.12.2017
17:42:35
Ну большинство вещей для DT в хаскель написала Стефани Вейрих

A64m
20.12.2017
17:45:48

Denis
20.12.2017
17:48:14

kana
20.12.2017
17:52:04

Index
20.12.2017
18:31:16
подступает 2k18, люди узнают про TypeInType
ну я сразу еще фаст форвард сделаю до момента, как вы узнаете, что он сломан
если попытаетесь использовать

Google

kana
20.12.2017
18:32:15
о, а в чем сломан?

Index
20.12.2017
18:32:20
https://ghc.haskell.org/trac/ghc/ticket/12919
https://ghc.haskell.org/trac/ghc/ticket/12564

kana
20.12.2017
18:32:25
я в принципе только недавно про хаскель узнал-то

Index
20.12.2017
18:34:25
в общем я больше года назад нашел два фатальных недостатка, до сих пор не могут разобраться до конца

kana
20.12.2017
18:47:58
в первом тикете прям довольно тривиальная вещь и не работает, странно

Index
20.12.2017
18:48:48
Во втором тоже базовая.
Я говорю — он сломан, это не минорные баги.
Это core lint failures и полная неюзабельность промоутных GADT-ов (main selling point of TypeInType).
Я его включаю для кайнд-синонимов
А что-то толковое выжать на данный момент трудно.

Евгений
20.12.2017
19:15:24

kana
20.12.2017
19:15:48
Add * :: *. Why do this? One alternative is to go the route of Coq and Agda and have an infinite tower of type universes. But, this adds a lot of complexity. These languages take this route because * :: * makes a language inconsistent as a logic. However, Haskell is already inconsistent as a logic (because of undefined and GHC.Exts.Any) and so we don't have to worry about a new source of inconsistency.
Очень нравится этот абзац.

Index
20.12.2017
19:16:34
Не, все очень хорошо, это правильный дизайн для Haskell

Евгений
20.12.2017
19:17:05
По-моему произошло что-то очень странно и программисты стали воспринимать зависимые типы как ещё один способ полиморфизма >...>

Index
20.12.2017
19:17:05
Даже в Agda сначала иногда с --type-in-type доказываешь для удобства, потом делаешь нормально.

Евгений
20.12.2017
19:17:32
Но с type in type можно доказать что угодно

Pig
20.12.2017
19:17:36

Index
20.12.2017
19:17:41
Нельзя

illiatshurotshka❄️
20.12.2017
19:18:00

Index
20.12.2017
19:18:04
А в Хаскеле пруфы надо редьюсить до NF

kana
20.12.2017
19:18:12
Это мощность типа?
ну там пример про множества, не про типы, логика кванторов та же, полагаю