Alexander
@VividDesires @chshersh от меня вопрос кстати, а как в servant-generic с nested endpoints?
NC
Alexander
Я за то, чтобы head был unsafe.
Я намучался с сейфным head в PureScript. Нифига не удобно
Alexander
через пачку типов вложенных?
A64m
делать колстековый констрейнт для СТРАШНЫХ ЧАСТИЧНЫХ ФУНКЦИЙ было бы еще разумным для альтернативных прелюдий, да
Alexander
NC
NC
в поле просто структура подапи лежит
Alexander
т.е. у меня есть тип, какой-нить типа Description "Blabla"
NC
сваггер вроде работает, но надо проверить
Alexander
ну не важно, например я свой тип ввожу, о котором автор точно не в курсе
NC
у IOHK точно работал
Alexander
например CanThrow 'Bla
NC
саша
а сервант умеет в рамл?
NC
да
Alexander
а норм тогда
Alexander
Alexander
при этом пользовательском уровне, в этом фишка
NC
servant-generic отвечает только за преобразование servant types <=> структура
Alexander
а понял, как оно работает
Leonid 🦇
сколько нужно времени и памяти для servant-generic?
Alexander
https://ghc.haskell.org/trac/ghc/wiki/Performance/Tests
Alexander
CC @A64m_qb0 никто не хочет поконтрибьютить с предложениями?
Alexander
хотя не там просто хотят формат текущей поменять
Alexander
т.е. останется бестолковым
A64m
они хотят, чтоб изменения ничего не значащих измерений было проще анализировать
Alexander
да
Alexander
чего-то сегодня бекендсикрета мало
Alexander
: (
кана
Alexander
В ООП-языках ОО-интерфейсы тоже для всех одни, только у кого-то получается правильно и понятно, а у кого-то - мессиво.
кана
Так тут дело не в выборе фри/фт
кана
Сигнатуры команд одни и те же будут
кана
Ты сначала дизайнишь дсл, а потом пишешь команды во фри или в тайпкласс
Alexander
Меня в чате вообще понимают? Я выше написал, что синтаксис я и так знаю. Я хочу на практику применения посмотреть.
кана
То есть тебя интересует не мощность ФТ, а разница в скиле людей дизайнить дсл, которые используют ФТ и людей, кто использует ФМ?
Alexander
И на конкретный вопрос получить из кода ответ: как производится разделение на интерфейсную часть и на то, что должно быть скрыто в имплементации (в рантайме)
Alexander
Скилл людей мне все равно какой. Хоть анонимно, хоть как
кана
Тогда мне не понятно, что ты спрашиваешь, потому что ответ: так же, как и в фри
Alexander
я просто не знаю какой показательный кусок я могу показать
Alexander
который поместится в разумные рамки
кана
Мб проще было бы, если бы ты дал пример на фри и попросил сделать то же самое на фт
Потому что у вопроса две части: синтаксис и дизайн дсл. Синтаксис ты знаешь, дизайн дсл тебя не волнует, так в чем вопрос
Alexander
тем более, что как верно сказал kama "Те же самые, что для функтора фри монады"
Alexander
кана
О, я как к компу доберусь, попробую, если там немного
Alexander
Не знаю, у меня - не сильно много кода
Alexander
я не очень понимаю этой задачи, если честно, реализовать stm на уровне библиотеки не используя входящие в язык примитивы?
Alexander
Конечно
Alexander
Пусть даже получится тормознутая STM
Alexander
что можно использовать?
Alexander
MVar можно
Alexander
должна ли быть конкрурентность нативной?
Alexander
IORef можно?
Alexander
IORef, если хочется
Alexander
Да все, кроме оригинального STM
Oleg
Alexander
Потому что иначе задача становится крайне тривиальной
Alexander
т.е. ты в своём решении не poor man concurrency делал?
Oleg
Навроде спорить про ЯП в жерке
Alexander
Alexander
хорошо
Alexander
так, ещё вопрос, а зачем там нужно FT решение?
Alexander
т.е. какие возможности обобщения и дополнительных реализаций предполагаются?
Alexander
я не знаю зачем решать такую задачу, а почему не иметь простую
newtype STM = SMT (ST RealWorld a)
data TVar
readTVar
writeTVar
Alexander
для этого не нужно ни FT ни Free
Alexander
Интересный вариант
Alexander
Но про retry я не представляю, что тут должно быть
Alexander
эти ребята нужны если ты хочешь обобщать и иметь различные имплементации исполнителя
Alexander
это то, как реализовано STM в RTS
Alexander
т.е. фишка обощения в том, что ты можешь использовать не STM а Foo
Alexander
или подменить интерпретатор твоего языка
Alexander
например он отладку начнет писать автоматом