ref: 5cfbe6431405a0005c4f19ce5082c7390679e616
dir: /tests/IOArray.hs/
module IOArray(main) where import Prelude import Data.IOArray import Data.IORef import System.IO import System.IO.Serialize default (String) main :: IO () main = do a <- newIOArray 10 0 s <- sizeIOArray a print s mapM_ (\ i -> writeIOArray a i (i*i)) [0..9] xs <- mapM (readIOArray a) [0..9] print xs o <- openFile "arr.tmp" WriteMode hSerialize o a hClose o i <- openFile "arr.tmp" ReadMode a' <- hDeserialize i xs' <- mapM (readIOArray a') [0..9] print $ xs == xs' r <- newIORef "foo" s1 <- readIORef r print s1 writeIORef r "bar" s2 <- readIORef r print s2