Size: a a a

2020 July 12

AP

Anatolii Prylutskyi in Haskell
вот в этом моменте оно опять рассыавется
источник

AP

Anatolii Prylutskyi in Haskell
Jerzy Syrowiecki
AllowAmbiguousTypes нужен, потому что x нет в типе выражения. откуда его компилятор возьмёт?
мне бы хотелось как-то компилятору сказать что вот тот x слева учиытвался
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
вот в этом моменте оно опять рассыавется
УМВР

class Action x a where
 send ::
   (MonadIO m, HasField x r (TQueue a), MonadReader r m) => a -> m ()
 send a = do
   chan <- asks (getField @x)
   liftIO $ atomically $ writeTQueue chan a
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
мне бы хотелось как-то компилятору сказать что вот тот x слева учиытвался
TypeApplications
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
мне бы хотелось как-то компилятору сказать что вот тот x слева учиытвался
или что ты имеешь в виду?
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
мне бы хотелось как-то компилятору сказать что вот тот x слева учиытвался
проблема в том, что он учитывается, но компилятор его не может вывести. AllowAmbiguousTypes говорит компилятору: ну и не надо выводить, я сам укажу
источник

AP

Anatolii Prylutskyi in Haskell
у меня есть
data Action1 = Action1
data Action2 = Action2
...
источник

AP

Anatolii Prylutskyi in Haskell
Для каждого свой TChan
источник

AP

Anatolii Prylutskyi in Haskell
в Reader Env
источник

AP

Anatolii Prylutskyi in Haskell
action1Chan
источник

AP

Anatolii Prylutskyi in Haskell
data Env = Env
 { action1Chan :: TChan Action1
 , action2Chan :: TChan Action2
 }
источник

AP

Anatolii Prylutskyi in Haskell
я хочу сделать
send Action1
send Action2
источник

AP

Anatolii Prylutskyi in Haskell
чтобы по типу аргумент нужный chan сам выбирался
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
data Env = Env
 { action1Chan :: TChan Action1
 , action2Chan :: TChan Action2
 }
chan или queue?
источник

AP

Anatolii Prylutskyi in Haskell
queue
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
чтобы по типу аргумент нужный chan сам выбирался
аргумент чего?
источник

AP

Anatolii Prylutskyi in Haskell
я думал я сделаю
instance Action Action1 "action1Chan"
источник

AP

Anatolii Prylutskyi in Haskell
аргумент в функцию send
источник

JS

Jerzy Syrowiecki in Haskell
Anatolii Prylutskyi
я думал я сделаю
instance Action Action1 "action1Chan"
instance Action Action1 "action1Chan"
никак не запрещает
instance Action Action1 "action2Chan"

чтобы запрещал, нужны FD или TF
источник

AP

Anatolii Prylutskyi in Haskell
ага, теперь мне понтяно стало
источник