$ ghciPrelude> :m +Data.IORef Control.Concurrent Control.Monad
GHCi, version 6.12.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
Prelude Data.IORef Control.Concurrent Control.Monad> msg <- newIORef "Hello"
Prelude Data.IORef Control.Concurrent Control.Monad> let echo =
forever $ readIORef msg >>= putStrLn >> threadDelay 3000000
Prelude Data.IORef Control.Concurrent Control.Monad> t <- forkIO echo
Hello
Prelude Data.IORef Control.Concurrent Control.Monad> Hello
Hello
writeIORefHello msg "World"
Prelude Data.IORef Control.Concurrent Control.Monad> World
World