...ist fehleranfällig:
Beispiel (Vorsicht, fehlerhafter Code):
überweise ( betrag :: Geld )
( quelle :: MVar Geld ) ( ziel :: MVar Geld ) = do
q <- takeMVar quelle
when ( q >= betrag ) $ do
z <- takeMVar ziel
putMVar quelle $ q - betrag
putMVar ziel $ z + betrag