atomic-modify-general-0.1.0.0: test/Main.hs
{-# language DeriveGeneric #-}
module Main (main) where
import Data.IORef
import Data.IORef.AtomicModify.Generic
import Control.Monad
import GHC.Generics
data Pair a b = Pair a b
deriving (Show, Generic)
main :: IO ()
main = do
ref <- newIORef (1 :: Int)
replicateM_ 5 $ atomicModifyIORef2Native ref (\i -> Pair (i + 1) i) >>= print