The latest version of global-variables is 1.0.1.1-0.

global-variables

Version 1.0 revision 0 uploaded by JeanMarieGaillourdet.

Package meta

Synopsis
Namespaced, global, and top-level mutable variables without unsafePerformIO.
Description

Data.Global provides a global namespace of IORefs, MVars and TVars. This namespace may be accessed in pure code. Yet reading and writing to those IORefs, MVars and TVars happens still in their respective monads.

Data.Global is designed to meet the following use cases:

  • Simplify the declaration of top-level mutable variables, by avoiding any pragmas as well as unsafePerformIO.

  • Avoid having to pass references explicitly throughout the program in order to let distant parts communicate.

  • Enable a communication by convention scheme, where e.g. different libraries may communicate without code dependencies.

  • Simplify the "configuration problem" - at least for code in the IO monad.

Note, that this library does not encourage sloppy software design by re-introducing all bad effects of global variables. Nevertheless, sometimes global variables are a suitable solution to a problem. In that case Data.Global simplifies and extends their handling significantly.

Examples are in the documentation of Data.Global.

Author
Jean-Marie Gaillourdet and Patrick Michel
Bug reports
http://bitbucket.org/jmg/global-variables/issues
Category
Data, Reflection
Copyright
2011 Jean-Marie Gaillourdet
Homepage
n/a
Maintainer
Jean-Marie Gaillourdet <jmg@gaillourdet.net>
Package URL
n/a
Stability
stable

Components