У меня есть два потока в haskell, которые выполняют IO. (Они печатаются только). Что-то вроде следующего:
thread1 :: IO ()
thread1 = putStrLn "One"
thread2 :: IO ()
thread2 = putStrLn "Two"
В настоящее время я получаю следующие результаты:
OnTwoe
OTnweo
Как я могу гарантировать, что каждый поток завершает свой IO атомарно?