Global variables
David House
dmhouse at gmail.com
Thu Feb 1 16:14:05 EST 2007
(CCing the list as this is of general concern.)
On 01/02/07, Yitzchak Gale <gale at sefer.org> wrote:
> Why is this unsafe? What could go wrong?
It could segfault due to the type safety properties that unsafePerformIO breaks:
import System.IO.Unsafe
import Data.IORef
ref :: IORef [a]
ref <- newIORef []
main = do
writeIORef ref [42]
val <- readIORef ref
print (val :: [Char])
If you use the pragma you're forced to import unsafePerformIO and
hopefully check the haddock docs [1] where this issue is listed.
[1]: http://haskell.org/ghc/docs/latest/html/libraries/base/System-IO-Unsafe.html
--
-David House, dmhouse at gmail.com
More information about the Haskell-prime
mailing list