Anonymous
вот прям из книги
Danila Matveev
ну вообще любая именованная библиотека явлй яется внутренней и не экспортируется, но ее можно испортировать в тестах
про это проглядел в доке, спасибо тогда совсем непонятно зачем придумали other-modules
Danila Matveev
не, ругается FromString "'library' expects no argument"
Danila Matveev
Чтобы не портить процент покрытия?)
Aleksei (astynax)
То, что в other-modules, не хуглится, а это важно! Частенько нахугливается что-то из Bla.Bla.Internal, и это меня лично раздражает
Cheese
То, что в other-modules, не хуглится, а это важно! Частенько нахугливается что-то из Bla.Bla.Internal, и это меня лично раздражает
а меня радует, когда нахожу Internal, что можно не создавать свой велосипед, а украсть чужой
Aleksei (astynax)
Внутренние тоже не должны, по идее. Но это не точно
Кабачок
Какие люди
Alexander
про это проглядел в доке, спасибо тогда совсем непонятно зачем придумали other-modules
other modules придумали сначала и некоторые считают, что это хорошая идея
Alexander
это в последних только появилось
Danila Matveev
1.24
Alexander
1.24
нужно 2.0
Danila Matveev
понял, спасибо
Alexander
но и стек вроде научили с последним кабалом работать, но это не точно
Aleksei (astynax)
(/me за other-modules)
Aleksei (astynax)
вот убивал бы когда на хаддоки source не открыть, как для other-modulez
Скрытые модули на то и скрыты, чтобы заглядывать в них не нужно было, ибо это детали реализации, потенциально могущие меняться (для того и спрятаны). Но правильно отделить скрываемое от публичного немногие могут, увы...
Alexander
конечно не могут, т.к. правильное отделение это все открыто
Alexander
хочешь скрыть - положи в .Internal
Alexander
от этого никто не проиграет
Alexander
т.к. не бывает неважных деталей реализации, всегда может хотеться или посмотреть код чтобы сделать так же в другом месте или проверить ассимптотику или то, что документация корректна и т.п.
Alexander
не говоря уже о том, что хочется сделать то, что автор почему-то решил что делать не надо
a66ath
Scotty или Spock?
Aleksei (astynax)
Скотти
Aleksei (astynax)
Скотти тоньше и менее opinionated
кана
А че именно эти два варианта?
кана
Ни один из них мне не нравится просто
Aleksei (astynax)
"Тонкий роутер над WAI, но чтобы простой"
Aleksei (astynax)
Ещё Strelka есть :)
кана
Сервант простой
a66ath
Ну какой еще есть современный пиздатый небольшой фреймворк?
кана
Круче серванта ничего не видел
Misha
Серванта хватит всем, поддерживаю.
Aleksei (astynax)
Сервант - не небольшой и не простой :)
a66ath
Type-Level
a66ath
Ну спасибо
Aleksei (astynax)
Кароч Спок и Скотти обы вполне живы, невелики и вообще. Snap уже "более большой"
Aleksei (astynax)
Strelka тоже маленькая, но очень "своеобразная"
Aleksei (astynax)
А так можно просто WAI+роутер (https://hackage.haskell.org/package/wai-routes)
Aleksei (astynax)
С сервантом не всё и не всегда гладко. Как-то недавно хотел сделать servant client для одной апишки, но нужно было POSTить файлы, и оказалось что клиент этого не умеет. И когда начнёт уметь - непонятно, потому как никому до этой фичи нет дела. Пришлось юзать wreq
Aleksei (astynax)
Ах да, есть ещё Fn (https://github.com/positiondev/fn)
Зигохистоморфный
https://github.com/ChrisPenner/Firefly
Aleksei (astynax)
Firefly низачот! Он скрывает WAI Application, что сразу ломает всю композируемость
Aleksei (astynax)
Фу, он ещё и свои middleware - не совместимые ни с кем - притаскивает!
Aleksei (astynax)
Не надо так!
Serghei
угу
Serghei
так себе фреймворк
Aleksei (astynax)
Просто если уж паразитируешь над WAI, изволь соблюдать нормы приличия и будь композабельным, ящитаю!
Aleksei (astynax)
Для обучения плохому? >:^E
Denis
IO - lowlevel web framework
Alex
я правильно понимаю что комоноид и моноид это одно и тоже?
https://stackoverflow.com/questions/23855070/what-does-a-nontrivial-comonoid-look-like
Anonymous
комонада это комоноид в котегории эндофункторов же
Anonymous
так
Anonymous
а может кто объяснить почему в книге рисуется совсем не так как в википедии? (то есть я понимаю второй рисунок но не первый)
Anonymous
книга:
Anonymous
и википедия
Anonymous
???
Ilya
книга:
Ну это же просто иллюстрация того, что в категории один единственный объект?
Alex
ну в книге нарисована иллюстрация, а в вики - коммутативная диаграмма
adam
Что тогда означает эта нотация?
adam
class Functor m => Applicative m => Monad m => MonadFix m where
Vasiliy
то же самое, что и class (Functor m, Applicative m, Monad m) => MonadFix m
Alex
первый рисунок призван демонстрировать что моноид можно рассматривать как категорию, где стрелки отождествляются с элементами моноида
Alex
соответственно операция моноида отождествляется с композицией стрелок
Alex
а неважно что
Alex
это вообще основная идея теорката - объекты неважны :)
Alex
можно считать что там ()
Alex
важно только что он единственный
Anonymous
окей, что там может быть?
Alex
ну вот ()
Alex
вообще может быть что угодно, хоть фиолетовый муравьед
Anonymous
аа, понял
Anonymous
спасибо