Порядок выполнения с (>> =) не такой, как я ожидал

У меня есть серия сетевых запросов, каждый из которых занимает> 10 секунд.
Чтобы пользователь знал, что происходит, я даю обновления:

main = do putStr "Downloading the first thing... "
          {- Net request -}
          putStrLn "DONE"
          putStr "Downloading the second thing... "
          {- Net request -}
          putStrLn "DONE"

С GHCi это работает, как ожидалось, но при компиляции или с помощью runghc «Загрузка» не печатается до тех пор, пока не будет выполнено «ГОТОВО».

Я переписал его с помощью (>> =) и (>>), но у меня та же проблема.

Что происходит?

9
задан Matvey Aksenov 2 December 2011 в 19:33
поделиться