Kirill
@lonokhov а что за танец? я вроде указал гитхаб - оно пересобирает ещё
Евгений
https://hackage.haskell.org/package/base-4.10.1.0/docs/GHC-Conc.html#t:STM Хммм
Kirill
или типа не сойдётся в рантайме? :)
Leonid 🦇
ну раньше там были сложности с бут либами из ghc
Leonid 🦇
не соёдется только если ты ghc как либу используешь :)
Leonid 🦇
но сама модель stackage не позволяет такое
Leonid 🦇
ну версию бут пакета менять
Leonid 🦇
@elemir90 это примитивы только
Kirill
@lonokhov но стэк собирает с гитхабной версией
Kirill
просто указал в пакетах
Leonid 🦇
ишь чо
Kirill
но терь код ещё портануть надо
Anonymous
а можно ли считать что ⊤ в хаскеле это forall a. a?
Vladislav
в каком смысле ⊤?
Vladislav
forall a. a это ненаселённый тип, он скорее ⊥
Meowbe/BSD-2-Clause
в каком смысле ⊤?
В джавашном и сисярповом, скорее всего.
Vladislav
тогда скорее Dynamic
Meowbe/BSD-2-Clause
Ну нет
Зигохистоморфный
а можно ли считать что ⊤ в хаскеле это forall a. a?
Unit и Void есть терминальный и инициарный объекты
Meowbe/BSD-2-Clause
тогда скорее Dynamic
Про a ничего не известно
Meowbe/BSD-2-Clause
А динамик позволяет всё
Vladislav
А динамик позволяет всё
когда мы говорим про сабтайпинг надо отличать positive и negative position
Vladislav
forall a. a -> ... это top type, forall a. ... -> a это bottom type
Vladislav
top type в положительной позиции это Dynamic, т.к. можно любой другой тип как Dynamic вернуть из функции
Meowbe/BSD-2-Clause
Ну суть в том, что динамик в шарпе это нетипизированное что-то, а а эти любой тип
Vladislav
это ближайший аналог, в Хаскеле ведь нет "нетипизированного чего-то"
Meowbe/BSD-2-Clause
А T в дженерике как раз примерно эквивалентен a
Meowbe/BSD-2-Clause
🤔
Meowbe/BSD-2-Clause
Хотя это object скорее
Vladislav
Dynamic это и есть Any, только еще с информацией о типе (чтобы назад пробовать скастовать)
Meowbe/BSD-2-Clause
Не знаю, можно ли через ртти посмотреть тип динамика
Vladislav
data Dynamic = MkDynamic TypeRep Any :)
Meowbe/BSD-2-Clause
Если бы это использовали просто чтобы разные значения вернуть, то объект был бы не нужен
Meowbe/BSD-2-Clause
Я про Шарп если что сейчас
Vladislav
а, ок, я в C# не знаю про Dynamic
Meowbe/BSD-2-Clause
Динамик там обычно используется для того, чтобы вернуть анонимный тип
Meowbe/BSD-2-Clause
Потому что его никак не описать
Meowbe/BSD-2-Clause
Интересно
Meowbe/BSD-2-Clause
В смысле он Typeable?
Anonymous
так получается нет никакого типа к которому можно подставить любое значение?
Vladislav
В смысле Typeable в основном существует ради Dynamic и ему подобных штук
Meowbe/BSD-2-Clause
Ага
Meowbe/BSD-2-Clause
Понятно
Anonymous
это типобезопасно?
Vladislav
Да
Anonymous
а
Anonymous
здесь же нужно привести к типу через функцию
Anonymous
это не совсем то что интересует
Xeta Felius
повторюсь ещё раз, что скорее всего лолакхост в ипв6 резолвится
Я вчера тупил. Всё проще. В хостах localhost закоменчен.
Alexander
тоже вариант
Vladislav
ghci> x = toDyn (5 :: Int) ghci> fromDynamic @Bool x Nothing ghci> fromDynamic @Char x Nothing ghci> fromDynamic @Int x Just 5
Vladislav
ilia ^ вот тебе short tutorial в Dynamic
Xeta Felius
тоже вариант
Сорри что задал тупой вопрос.
Alexander
ну не тупой, например, то что ipv6 бы не работало, это не очевидно
Alexander
пришлось кстати повозиться, чтобы это понять
Vladislav
здесь же нужно привести к типу через функцию
если тебе хочется вернуть что-то неизвестного типа, то ты на самом деле хочешь экзистенциальную квантификацию тогда (её нет)
Xeta Felius
Не. Глянуть хостс было очевидным))
Vladislav
но можно через CPS энкодить
Xeta Felius
С другой стороны. Ещё один вопрос был. Какие библиотеки юзаете для p2p? А то библиотек дофигища. Но возможно самое актуальное это Cloud Haskell
Alexander
можно использовать просто network-transport
Alexander
без всего этого CH безобразия
Xeta Felius
Чому сразу безобразия?)
Alexander
можно использовать байндинги к общим либам типа zeromq,nanomsg,gRPC и прощей гадости
Alexander
там много безобразия
Alexander
хотя сейчас оно более менее работает
Leonid 🦇
Академики писали...
Alexander
вон в serokell/iohk используют просто network-transport
Alexander
у нас использовался CH, но боюсь мы на этом достаточно времени убили
Leonid 🦇
А он же без tls, не?
Alexander
,без
Xeta Felius
А вот это уже интересно, спасибо)
Alexander
но если ты на чисто n-t уровне работаешь, никто не запрещает шифровать сообщения
Alexander
смотри, если тебе прям-вообще CH не нужен - лучше не брать
Leonid 🦇
И то верно
Alexander
ну и в zeromq-бекенде есть шифрование