Size: a a a

2020 May 06

MP

Misha Puzanov in Haskell
import Control.Concurrent.Async.Lifted as LAsync

do
 a <- LAsync.async  
 atomically $ blabla
источник

MP

Misha Puzanov in Haskell
Couldn't match type ‘m’ with ‘IO’
источник

MP

Misha Puzanov in Haskell
что логично конечно
источник

AV

Alexander Vershilov in Haskell
тогда нужно m () -> IO () ?
источник

AV

Alexander Vershilov in Haskell
atomically откуда?
источник

MP

Misha Puzanov in Haskell
Alexander Vershilov
тогда нужно m () -> IO () ?
почему?
источник

AV

Alexander Vershilov in Haskell
первая строчка в m, а вот вторая неочевидно
источник

MP

Misha Puzanov in Haskell
atomically :: STM a -> IO a
источник

AV

Alexander Vershilov in Haskell
обычный, ок
источник

MP

Misha Puzanov in Haskell
да
источник

AV

Alexander Vershilov in Haskell
тогда liftIO $ atomically $ blabla
источник

MP

Misha Puzanov in Haskell
надо искать лифтет версию?
источник

AV

Alexander Vershilov in Haskell
или liftBase $ atomically $ blabla
источник

AV

Alexander Vershilov in Haskell
Смотря что ты хочешь сделать
источник

AV

Alexander Vershilov in Haskell
Вообще lifted-async не очень честная штука
источник

KV

Kirill Valyavin in Haskell
Alexander Vershilov
Смотря что ты хочешь сделать
А есть разница?
источник

AV

Alexander Vershilov in Haskell
во внутрь atomically контекст прокинуть или сам atomically поднять
источник

MP

Misha Puzanov in Haskell
Alexander Vershilov
тогда liftIO $ atomically $ blabla
а, все проканало, это в другом месте mismatch был
спасибо!
источник

AV

Alexander Vershilov in Haskell
А с форком есть 3 вещи:
1. как разделять состяние, не всегда просто копировать можно
2. как состояния в тредах взаимодействуют и взаимодействуют ли
3. как мержить состояния в конце и надо ли
источник

MP

Misha Puzanov in Haskell
Alexander Vershilov
Вообще lifted-async не очень честная штука
ну мне надо ReaderT . ExceptT . StateT а там вроде все честно
источник