Yes, there are several reasons for having UNSAFE in the name. :-) -- Lennart Ashley Yakeley wrote: >At 2002-11-18 11:05, Sven Panne wrote: > > > >>global :: a -> IORef a >>global a = unsafePerformIO (newIORef a) >> >> > >This is useful, you can do this with it: > > ref = global Nothing > > convert :: a -> IO b > convert a = do > writeIORef ref (Just a) > Just b <- readIORef ref > return b > > > >