Global variables?

Glynn Clements glynn.clements@virgin.net
Fri, 31 Jan 2003 07:47:43 +0000


Pavel G. Zhbanov wrote:

> Is it even possible to make a "global variable" in Haskell? 
> If yes, how?

The usual fudge is:

	import IORef
	import IOExts
	
	globalVar :: IORef Int
	globalVar = unsafePerformIO $ newIORef 0

However, beware of creating more than one "global variable" of the
same type. If you enable optimisation, common subexpression
elimination may result in both names referring to the same IORef.

-- 
Glynn Clements <glynn.clements@virgin.net>