RosettaCodeData/Task/Generic-swap/Haskell/generic-swap-2.hs

8 lines
164 B
Haskell

import Control.Monad.Ref
swap :: MonadRef r m => r a -> r a -> m ()
swap xRef yRef = do
x<-readRef xRef
y<-readRef yRef
writeRef xRef y
writeRef yRef x