Ilya
возможно проблема в том, что либу я собираю стеком(сложная судьба у неё)
Alexander
с ним просто cabal build должен отлавливаьт
Ilya
ну я вижу в сендбоксе интерфейсные файлы своей либы. я добавил новый модуль в либу, но он в сендбоксе явно не появился
Ilya
мне нужно какой-то reinstall звать?
Ilya
то есть он вроде видит, что что-то поменялось, но потом ноет что
Warning: Couldn't reinstall some add-source dependencies.
Ilya
собственно внешняя либа это как раз wasm-0.1.0
Ilya
удалил из сендбокса либу и сделал снова cabal install, помогло, но мне кажется что раньше оно у меня как-то само из коробки работало
Mekhrubon
А почему MonadCatch и MonadCont вместе не работают? MonadCont написан на эксепшенах и это может ломать пользовательский код?
Anonymous
Alexander
Alexander
иначе бы работали вместе
Mekhrubon
throw и cont работает
Alexander
т.к. не написать инстанс для отлавливания исключения не теряющий состояния
Alexander
MonadThrow m => MonadThrow (ContT * r m)
Alexander
тут throw от нижележащей монады берется
Alexander
а разумный catch не написать
Mekhrubon
да, в сорцах как раз и комент такой есть
Mekhrubon
спасибо
Maxim
Народ. Есть список [a], я делаю по нему traverse_ функцией a -> IO (), причём для всех элементов списка кроме не более одного функция превращается в return (). Можно как-то после этого одного элемента сделать break?
Короче задача найти в списке нужный элемент, если он есть, и сделать с ним какое-то ио
Anonymous
Может, разделить эти 2 шага:
1) найти нужный элемент чистой ф вне ио
2) ио с этим элементом
?
Aragaer
filter + head, а потом io
Maxim
Гм, filter. Вечно забываю про ленивость!
Nikolay
Вот у нас есть категория Hask. В ней объекты все типы без дырок? Т.е Maybe Int, [Int] тоже объекты в ней ?
Евгений
Nikolay
А как понимать return в монаде? Это морфизмом откуда и куда?
Nikolay
Я про то, что return умеет объект Int перевести в maybe int. Значит ли это что это морфизмом в исходной категории?
Dmitry
А исходная -- какая?
catostrophe
catostrophe
Т.к. ты остаешься в Hask
Alexander
Alexander
Nikolay
Т.к. ты остаешься в Hask
Если у меня функтор maybe, то я перехожу в подкатегории Hask. В ней объекты maybe с конкретным типом. Например просто int там уже нет
Ilya
Это не отменяет того, что ты останешься в Hask
Alexander
а у WT как всегда прекрасный пост: https://well-typed.com/blog/2018/05/ghc-special-gc-objects/
Ilya
Например функция возведения в квадрат действует из R в R, но образ R получается меньше R (только неотрицательные).
Ilya
Аналогично, функтор не обязан "покрывать" всю категорию, в которую он отображает
Ilya
Это вообще-то к теории категорий даже отношения не имеет
Nikolay
Но мы вводим категорию как пятерку. И соответственно я бы предположил, что если у нас у нас есть 2 разных пятерки, то это разные категории
Oleg
Nikolay
В нашем случае объектов становится меньше. Значит и морфизмом меньше.
Oleg
Nikolay
А какое тогда определение тождественности категорий?
Nikolay
Должно быть определение тождественности, что бы сказать , что категории таковы
Ilya
full functor не имеет?
Это в любой книжке по алгебре объясняется на первых же страницах (различие между F(X) и Y, для F: X -> Y)
Ilya
И не важно, будет F функтором, функцией, чем угодно
Oleg
Oleg
Т.е. для не-локально -маленькой категории это может служить в лучшм случае интуицией
Oleg
Но вообще, я не с этим спорил
Oleg
Я спорил с тем, что понятия full /faithful не важны для теорката. Ну или как ты сформулировал "не имеют отношения к нему".
Возможно, я неправильно понял посыл
Oleg
Ааааа сорян посоны, перечитал исходный посыл
Oleg
Мы говорим не о full/не full. Мы говорим о том, что у функтора не все объекты в образе
Евгений
Ну да, его смущает, что образ меньше исходной категории
Oleg
Ну тут сложно сказать "меньше"
Oleg
Так-то вроде в не слишком заумных языках тайп-конструкторы инъективны
Ilya
Oleg
Т.е. в случае эндофунктора для тайп-конструктора мы получаем "такой же по размеру"
Евгений
Nikolay
Главный вопрос - return это морфиз откуда и куда ?
Oleg
Alexander
Oleg
Oleg
Евгений
a -> f a?
Ну нет, такого типа a (точнее он есть, но я бы не стал стрелки forall a. a -> f a объявлять морфизмами между forall a.a и forall a. f a). Лучше сказать, что return это семейство морфизмов
Nikolay
Да. Вот fmap - это отображение морфизмов. А return это он что наьоро исходных объектов отображает в набор каких объектов?
Ilya
Oleg
Nikolay
У каждого морфизма есть dom . Что для returna домен ?
Oleg
Oleg
Oleg
Евгений
Oleg
Вооо, #яжговорил
ну в разном контексте это может быть морфизмом, семейством, индесированном объектом или объектом-и-эндофунктором