Hauptprogramm wartet, bis ein Thread fertig ist:
main = do -- nur zum Synchronisieren, -- Inhalt ist egal: synch :: MVar () <- newEmptyMVar forkIO $ do forM_ [ 1, 3 .. 100 ] print putMVar synch () -- fertig forM_ [ 0, 2 .. 50 ] print takeMVar synch -- warten