
Alexander
02.02.2018
16:18:19
unlift конечно проще на порядок
тут не поспоришь

Leonid
02.02.2018
16:18:53
а уж эксепшены насколько проще ExceptT!

Alexander
02.02.2018
16:19:05
вот не скажи

Google

Leonid
02.02.2018
16:19:25
жаль ghc не умеет такой стек как джава писать
такие клёвые логи что-бы были
с не поймаными исключениями

Alexander
02.02.2018
16:20:17
-prof / +RTS -xc
умрёшь правда лог в сильно конкурентной программе читать

Yuriy
02.02.2018
16:22:58

Alexander
02.02.2018
16:23:31
это-то понятно
ох, чем yieldOr заменили в кондуитах?
yieldOr :: Monad m
=> o
-> m () -- ^ finalizer
-> Pipe l i o u m ()
yieldOr o f = HaveOutput (Done ()) f o
снойман вроде выпилил это?

Index
02.02.2018
16:31:08

Yuriy
02.02.2018
16:41:41
комбот не считает частоты употребления слов? в этом чате на 1 месте был бы "снойман"
идея курсовой для моих учеников

Google

Denis
02.02.2018
16:52:32

Alexander
02.02.2018
16:55:22
как вы думаете, банить человека если его первое сообщение человека это тупая картинка это нормально?
(не банил пока)

init.d
02.02.2018
16:56:47

Alexander
02.02.2018
16:57:11
ok в следующий раз так и буду

Антон
02.02.2018
16:58:16

Alexander
02.02.2018
17:00:11
ImplicitParameters?

Index
02.02.2018
17:00:14
-XImplicitParams, и это был сарказм про то, что оно лучшее
(хуже там только -XIncoherentInstances наверное)

Alexander
02.02.2018
17:01:16
долбаные кондуиты..

Yuriy
02.02.2018
17:02:10

Антон
02.02.2018
17:08:50

Alexander
02.02.2018
17:09:46
убрали prompt finalization (в общем-то правильно), но я не знаю чего с stm-conduit делать и насколько жирными делать warning-и что каналы сами закрываться не будут и пользуйтесь resourcet и прочим самостоятельно
хоть bump X.y делать
при этом для части функций я могу вполне оставить финализаторы

A64m
02.02.2018
17:21:09
> убрали prompt finalization
сдались таки

Антон
02.02.2018
17:22:57

Alister
02.02.2018
17:28:32
Что будут делать хаскелисты в случае вспышки на солнце, которая уничтожит всю электронику?

? animufag ?
02.02.2018
17:30:26
спорить о том нужно ли тк для продакшена на хаскеле

Alexander
02.02.2018
17:31:01
а как в monad-unlift восстановить сейт?

Google

Антон
02.02.2018
17:38:39
Читаю про типы в Kotlin и вдруг вот такая картинка:
http://natpryce.com/articles/000818/nullable-string.png
Ну блин, это ж коммутатиная диаграмма!

Alister
02.02.2018
17:40:03
- Any.
- Any?

Антон
02.02.2018
17:40:41
Там ещё Unit? есть
Как Maybe () в Haskell

? animufag ?
02.02.2018
17:41:34
Nothing?
так то ничего странного

Антон
02.02.2018
17:42:47
Nothing?
Ага, и такой есть. Это Нуллабельное днище

? animufag ?
02.02.2018
17:42:58
ну разве что то что maybe встроенный
и как бы они автоматически флетятся

Антон
02.02.2018
17:43:27
НУЛЛАБЕЛЬНОЕ ДНИЩЕ БЛАДЖ
Не, я, конечно, понимаю, что это следствие консистентности системы типов, но всё равно дико странно

Oleg
02.02.2018
17:44:25

Даниил
02.02.2018
17:45:34
в Haskell же можно сделать Maybe Void

Антон
02.02.2018
17:46:58

Даниил
02.02.2018
17:47:15
сумма нуля и единицы, изоморфна единице (Unit)

Alister
02.02.2018
17:47:17

Denis
02.02.2018
17:47:41

Даниил
02.02.2018
17:47:54
Но зачем?
да это другой вопрос
есть алгебра над типами
нельзя просто вот так взять и запретить операцию над какими-то двумя потому что "в этом нет смысла"

Антон
02.02.2018
17:48:13

Google

Denis
02.02.2018
17:48:22
Void терминальный
Unit инициальный
(или наоборот)

Даниил
02.02.2018
17:48:30

Oleg
02.02.2018
17:49:02
пример - запрет на type A <: Nothing в за компанию презираемом в этом чате Dotty

Даниил
02.02.2018
17:51:57

Антон
02.02.2018
17:53:43

Artyom
02.02.2018
17:55:49

Даниил
02.02.2018
17:56:01

Admin
ERROR: S client not available

Artyom
02.02.2018
17:56:04
если я просто юзаю buffer и больше ничего, что мне грозит?

Alexander
02.02.2018
17:56:13
@lightgreen скорее всего ничего
там не большие изменения будут

Oleg
02.02.2018
17:56:47
а можно поподробнее?
а то я ничего не понял
для того, чтобы, выражаясь вашими словами система имела смысл (soundness), в экспериментальной версии scala по имени dotty запрещают проводить мостик между top и bottom типами Any и Nothing вот такого рода
type A >: Any <: Nothing
иначе сам факт наличия такого type member без единого объекта, его содержащего, сколлапсил бы всю систему типов в одну точку Any =:= Nothing

Антон
02.02.2018
17:57:49
А зачем вообще нужен Top?

Alexander
02.02.2018
17:58:11
Top не обязателен, но с ним удобно

Artyom
02.02.2018
17:58:18
@qnikst раз уж так, то спрошу ещё про кондуиты
есть какой-то кондуит, который считает элементы и делает что-то после каждого N-ного?

Alexander
02.02.2018
17:58:48
не думаю, что изкоробки есть
я такое руками делал обычно, но я не мастер

Антон
02.02.2018
17:59:55

Даниил
02.02.2018
18:00:25
для того, чтобы, выражаясь вашими словами система имела смысл (soundness), в экспериментальной версии scala по имени dotty запрещают проводить мостик между top и bottom типами Any и Nothing вот такого рода
type A >: Any <: Nothing
иначе сам факт наличия такого type member без единого объекта, его содержащего, сколлапсил бы всю систему типов в одну точку Any =:= Nothing
ага, понял, спасибо
но это я немного не так выразился, речь шла не о soundness, а о том какой практический смысл у операции
Переслано от Антон же сказал типа "зачем складывать боттом и юнит, в этом же нет смысла", а это soundness никак не нарушает и непонятно зачем делать для этого случая исключение и запрещать его, я вот об этом говорил

Google

kana
02.02.2018
18:00:53

Oleg
02.02.2018
18:01:14

? animufag ?
02.02.2018
18:01:39

Антон
02.02.2018
18:01:43
Да, вы тут напомнили — как выразить в Haskell тот факт, что для всех типов, для которых реализован класс типов Foo, автоматически реализовывается класс типов Bar, но при этом не делать Foo констраинтом на тип?

Oleg
02.02.2018
18:02:15
учитывая, что всё-таки речь о языке с субтайпингом , странно искать практический смысл сначала спроецировав на F

Denis
02.02.2018
18:04:20
Newtype + GeneralizedNewtypeDeriving

Антон
02.02.2018
18:04:52
ньютайпом
А чуть подробнее? А то DataTypeContexts задепрекейтили зачем-то

Denis
02.02.2018
18:05:08
или я не понял вопрос)

Alexander
02.02.2018
18:05:14
Да, вы тут напомнили — как выразить в Haskell тот факт, что для всех типов, для которых реализован класс типов Foo, автоматически реализовывается класс типов Bar, но при этом не делать Foo констраинтом на тип?
во первых, нету смысла так делать, т.к. если из Bar следует то, что это и Foo, то тогда нужно писать констреинт, другое дело что нет
тогда через DefaultInstances или как там его
class Bar where
bar :: Bar a
default bar :: Foo a => Bar a
bar = foo

Антон
02.02.2018
18:06:55

Oleg
02.02.2018
18:07:16

Denis
02.02.2018
18:07:23
только как импрувмент в будущем

Alexander
02.02.2018
18:07:38

Denis
02.02.2018
18:07:40
тут обсуждали

Alexander
02.02.2018
18:07:44
чсв > 80000

Антон
02.02.2018
18:07:51