@haskellru

Страница 693 из 1551
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++ и недопруфнедоассистентом

А под капотом все равно один и тот же OutsideIn
параметризован только по разному

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

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
Странно, а почему не system f второго ранга?
подключишь батарею из прагм и будет тебе

Евгений
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
подключишь батарею из прагм и будет тебе
нет, у ghc rank2 не включается в принципе, только сразу rankN

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)

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????

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
Кстати, почему в ghc такой странный для экзистенционалов синтаксис. Почему forall????
Контравариантные профункторы, конвертирующие вместо пределов, энды в их дуализм являются хорошим примером

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

kana
20.12.2017
16:03:30
Кстати, почему в ghc такой странный для экзистенционалов синтаксис. Почему forall????
дополнение к "чтобы кейворды не плодить" - ∃x, P(x) → C = (∀x, P(x)) → C

я правда пока не могу понять это равенство совсем

например 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
и то, что я недавно нашел странную вещь * :: * - не баг, это новая фича - первая фаза внедрения завтипов
есть еще специальная библиотека для накостыливания недозавтипов на синглетонах

kana
20.12.2017
17:52:04
есть еще специальная библиотека для накостыливания недозавтипов на синглетонах
ты про singletons? Да, все эти костыли для эмуляции завтипов я видел ранее, а тут прям что-то реальное делается, только без универсумов

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 можно доказать что угодно

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

Но с type in type можно доказать что угодно
У тебя предположение, что есть proof erasure.

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

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

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