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