shithub: MicroHs

ref: ba44b0a8e3c6b5d4720b322b68ace937fdab9a9e
dir: /tests/IOArray.hs/

View raw version
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