kein Deadlock (trivial).
forM [ 1 .. num ] $ \ p -> forkIO $ forever $ do atomically $ do take $ left p take $ right p atomically $ drop $ left p atomically $ drop $ right p take f = do busy <- readTVar f when busy $ retry writeTVar f Truenicht fair. Vergleiche Diskussion hier: http://thread.gmane.org/gmane.comp.lang.haskell.parallel/305