MicroHs-0.9.8.0: 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