(CCing the list as this is of general concern.)

On 01/02/07, Yitzchak Gale <[EMAIL PROTECTED]> 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, [EMAIL PROTECTED]
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to