...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