
Index
01.02.2018
22:59:53
Ну то есть если я напишу
let ?x = foo ?y = bar in Rec, то оно не выведет, какие там поля в Rec, а если Rec & #x .= foo & #y .= bar, то выведет

A64m
01.02.2018
23:01:01
ну да

Index
01.02.2018
23:01:10
А если убрать эти .=, то получится немножко короче
Rec ! #x foo ! #y bar
что-то мне это напоминает
а да, мои костыльные keyword arguments

Google

A64m
01.02.2018
23:03:12
надо в гхц протащить паттерн-синонимы-рекорды, поддерживающие лейблы, и все можно сказать что для строительства анонимных рекордов все есть

Alexander
02.02.2018
09:00:07
так я хочу в серванте сделать что-то вроде:
type MyAPI = "fsjkhdf" :> ReqBody (MyRequest foo) :> Post foo
у меня есть хоть какие-то шансы на удачу?
просто мне нужны запросы к внешнему сервису зоделать и не хочется под это 100500 урлов генерить
при этом хочетя чтобы соотвествие request -> reply типов было
что дает соотв GADT

Oleg
02.02.2018
09:06:11

Alexander
02.02.2018
09:07:15
ну я могу попытаться автоматизировать развернтку всех возможных типов, и не писать руками урлы, но или завернуть в экзестенциальную обертку, но тогда я вроде бы теряю информацию о связи
во втором случае, я хотя бы могу сделать user facing API защищенный конечно

Denis
02.02.2018
09:12:29
по куску что ты запостил непонятно что ты хочешь сделать, но решение это явно TF ?

Alexander
02.02.2018
09:19:49
не тут код генерить надо class types нужны, одних TF не хватит
хочу url выше и
data MyRequest a where
R1 :: MyRequest Int
R2 :: MyRequest String

Google

Denis
02.02.2018
09:21:27
ну если закрытый кайнд будет типов-вариантов(параметров для MyRequest), то можно на TF

Alexander
02.02.2018
09:22:30
я когда сервер делать буду мне ж потребуется специфицировать урлы
с TF я могу из такого типа сгенерить 1005000 урлов что нужно по закрытому кайнду
но придется копипастить код, чтобы был и код и типы нужны классы

Kirill
02.02.2018
09:38:18
у нас в примерно похожем случае existential, но дизайн жутко не нравится по сути вылезает динамическая типизация, ну и связи с типом ответа нет, правда

Marai Auwal Muhd Auwal
02.02.2018
09:38:43
hello

Hot
02.02.2018
09:39:26
Hello, nice name.
А есть какой-нибудь nohello по аналогии с neprivet?

Kirill
02.02.2018
09:40:45
а что есть neprivet?

Denis
02.02.2018
09:41:20
coprivet is privet^op

Hot
02.02.2018
09:41:46
neprivet.ru или как-то так
Ссыль, которую кидают, когда кто-то заходит в чат и сразу пишет отдельным сообщением "Привет".
А потом ещё минут 5 набирает сообщение по сути.

Oleg
02.02.2018
09:42:51
nohello.com

Hot
02.02.2018
09:43:20
Хм, надо же. Как очевидно при этом, лол. Даже сам думал проверить, но мне было лень.

Leonid
02.02.2018
09:59:28
Это как 15+ лет назад в irc любили на вопрос "где" посылать на сайт немецкой стоматологии?

Hot
02.02.2018
10:07:17
Обожаю ваш лямбда-юмор!

Alister
02.02.2018
10:08:02
лямбда-юмор можно карировать?

Leonid
02.02.2018
10:14:23
Я люблю постить ко-юмор

Kirill
02.02.2018
10:16:30
@qnikst про http://blog.roman-gonzalez.ca/post/170390559402/capataz-01-released ты не особо в курсе?

Google

Leonid
02.02.2018
10:18:27
я не пойму, оно треды супервайзит или процессы?

Denis
02.02.2018
10:20:32
https://storm-country.com/blog/gof-strategy

Kirill
02.02.2018
10:20:35
ну речь вроде про форкио
какие там процессы

Leonid
02.02.2018
10:21:03
ну вообще да

Kirill
02.02.2018
10:21:29
но я не вчитывался, есть ли там IPC какой

Leonid
02.02.2018
10:22:16
вроде нет. это чисто деревья тредов
полезно поди

Alexander
02.02.2018
10:22:39
не в курсе
там 100600 либ
подобных

Leonid
02.02.2018
10:23:16
но в наше время, когда у всех независимые друг от друга микросервисы общающиеся джейсоном по http, нужен ли OTP?

Alexander
02.02.2018
10:24:53
все до последней запятой можно убирать

Alexey
02.02.2018
10:25:02
микросервисы на одной машине, общающиеся по http - это как-то очень жирно

Alexander
02.02.2018
10:25:22
но но gRPC

Leonid
02.02.2018
10:25:43
а еще они такие независимыве что ваще

Alexander
02.02.2018
10:26:01
с http2 да ещё и с мультиплексированием оно вполне норм может быть
но это либы полноценные нужны
не так и много оверхеда

Google

Leonid
02.02.2018
10:27:54
а что с gRPC для хаскеля? Гугловый протобаф на линзах жив ли?
https://hackage.haskell.org/package/proto-lens ну хотя-бы на хакадж выложили

Denis
02.02.2018
10:34:31

Leonid
02.02.2018
10:35:02
а в том что другие пакеты для протобаф вообще не умеют генерить из .proto
и не поддерживают proto3

Alexander
02.02.2018
10:35:19

Denis
02.02.2018
10:35:27

Admin
ERROR: S client not available

Alexander
02.02.2018
10:35:40
я не рискнул в alphasheets тащить пока

Leonid
02.02.2018
10:35:53
не понял
https://developers.google.com/protocol-buffers/

Alexander
02.02.2018
10:36:43
хотя там у нас реально напрашивается http2, учитывая, что тогда всякие запросы от браузера можно было бы каналами напрямую пробрасывать

Denis
02.02.2018
10:36:53

Alexander
02.02.2018
10:37:02
так то, http2 это ж framing протокол, не?

Leonid
02.02.2018
10:37:07

Alexander
02.02.2018
10:37:15
payload можно любой, данные/cbor и т.д.

Leonid
02.02.2018
10:37:20

Alexander
02.02.2018
10:37:24
в gRPC конечно да, привязаны протобуфы

Leonid
02.02.2018
10:37:43
Говорят в gRPC теперь и json можно

Denis
02.02.2018
10:37:46

Google

Alexander
02.02.2018
10:38:13
а что мешает сериализовать ADT сегодня?

Leonid
02.02.2018
10:38:14

Alexander
02.02.2018
10:39:06
вообще http2 похож на network-transport с упрощениями некоторой части (разные типы соединений) и усложнением, более широкий набор дефолтных событий и т.п.
ещё и попсовый, т.е. если бы были либы хорошие, то нормальный кандидат для использования

Leonid
02.02.2018
10:39:54
еще в gRPC есть какая-то хитрая логика с восстановлением подключений и видимо ack сообщений

Denis
02.02.2018
10:40:36

Alexander
02.02.2018
10:42:14
ну ты положишь adt куда, то, а что в го и пайтоне достанешь

Leonid
02.02.2018
10:42:41
@qnikst ну да. 4 конструктора в вебсокетах и 11 в http2 https://hackage.haskell.org/package/http2-1.6.3/docs/Network-HTTP2.html#t:FramePayload vs https://hackage.haskell.org/package/websockets-0.12.3.1/docs/Network-WebSockets.html#t:Message

Denis
02.02.2018
10:43:32
кто объяснит юзкейс для индексед монад и прочих конструкций?

Alexander
02.02.2018
10:43:53
хранить Typelevel state
например состояния ресурсов, или стейт мьютекса или ещё что

Denis
02.02.2018
10:44:19
ну вот какой-то вменяемый пример

Alexander
02.02.2018
10:44:24
который может меняться при переходе
я тебе его уже писал

Denis
02.02.2018
10:44:30
можно кодом

Alexander
02.02.2018
10:46:56
lock :: MutexMonad a Free Locked ()
unlock :: MutexMonad a Locked Free ()
update :: (a -> (a,b)) -> MutexMonad a Locked Locked b
view :: a -> MutexMonad a k k a

kana
02.02.2018
10:47:04

Alexander
02.02.2018
10:48:11
а вообще в блогах выпендриваться, оно даже с RebindableSyntax тяжко для использования

Leonid
02.02.2018
10:48:54
там еще как-то можно типизировать переменные в edsl