Влод
Влод
Нельзя тип назвать значением
Влод
Нужно договориться
Ilya
Хорошо, как тогда тип может населять другой тип? В haskell
Влод
В пределах нас 6ти человек
Ilya
Bottom населяет Int
Влод
незначение населяющее типы
Влод
ну то что пустое множество является подмножеством любого множества же никого не напрягает?
Ilya
Да меня уже ничего не напрягает:)
Ilya
Хорошо, пусть будет не-значение
Alexander
ну bottom это не значеие
Alexander
это результат for some definition of результат вычисления
Anonymous
Влод
А где-то можно...
Если тип включает в себя значение он всё ещё тип. Или я не так понял?
Anonymous
Ilya
Просто насколько я себе представляю, в ванильной теории типов никаких тайпклассов нет. Есть только типы, подтипы и надтипы. Но в хс решили, что удобнее сказать, что ТИП у значения может быть только один (пока забыли про боттом), а для объединения значения разных типов будем юзать тайпклассы
Влод
Mansur
Ilya
Ну академическая
Mansur
какая из?
Mansur
их много: https://en.wikipedia.org/wiki/Type_theory#Systems_of_type_theory
Ilya
Ну вот откуда эти все top и bottom
Нурлан
надо все-таки смириться, что haskell вдохновлялся теорий категорий
Влод
Нурлан
Mansur
вроде это самая простая с Top и Bottom ;)
Ilya
Ilya
А в какой-нибудь теории типов есть тайпклассы?
Влод
Кажется здесь была ирония
Влод
Anonymous
Влод
Пускай пока что будут типы и порядок между ними
Влод
И вот у этих типов будет верх или низ?
Влод
Ну по крайней мере тип которому все остальные являются подтипом
Mansur
полагаю, можно посмотреть статьи какого-нибудь Wadler-а про это :)
Влод
Ладно
Mansur
Ilya
Типа ребята закругляемся. Тут теоркат
Влод
Ладно этот всё таки похоже больше из области значений чем из области типов
Влод
Несмотря на то что англоязычная цитата ли Александра говорила строго об обратном
Ilya
А мне всё же не даёт покоя, что (head []) и (length $ repeat 1) считаются чем-то одинаковым!!!
Ilya
Недавно мне показалось, что я это понял, но всё же нет:(
Влод
Влод
Я рад
Влод
Но давай вставь сюда ботом
Влод
Ну например любой тип является подтипом ботом
Влод
Ок?
Mansur
есть следующее правило типизации: для любого типа T тип Bottom является подтипом T (Bottom :< T)
Anonymous
Ilya
Вот. Херня!
Ilya
А не тип
Ilya
Да
Ilya
С теорией типов у меня мир 😀
Alexander
/o
Alexander
эм.. а разве эт неочевидно?
Ilya
Ilya
Как только дошло
Misha
+SafeCopy
в продолжение и дабы разбавить ужасы bottoma: а это сделано поверх distributed-process c какой-то кастомной сериализацией или вы определяете data Message = Message ByteString?
Alexander
сорри я не думал, что это дополнять надо
Misha
или на более низком уровне?
Alexander
на уровне distributed process
Misha
то есть там можно плагинить свою сериализацию?
Alexander
ну у нас есть data Message = Message StablePrint ByteString
Misha
а оверхед на копирование?
Misha
ну типа один массив байтов в другой
Misha
или это ерунда
Alexander
там writev подиее не должно быь большой проблемой при больших размерах
Misha
опа
Misha
то есть сериализатор использует writev?
Misha
в смысле сериализует сразу в сокет?
Misha
или я туплю
Misha
а, ясно
Alexander
оно в lazybytestring сериализует который куски байтострок