global-variables: Namespaced, global, and top-level mutable variables without unsafePerformIO.
Data.Global
provides a global namespace of IORef
s, MVar
s and
TVar
s. This namespace may be accessed in pure code. Yet reading
and writing to those IORef
s, MVar
s and TVar
s 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.
Version History:
0.1.1: made compatible with stm-2.3
0.1.0: added declareEmptyMVar and widened the stm dependency
0: First public release
Downloads
- global-variables-1.0.1.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 1.0, 1.0.1.0, 1.0.1.1 |
---|---|
Dependencies | base (>=4 && <5), containers (>=0.3 && <0.5), stm (>=2.1 && <2.4) [details] |
Tested with | ghc ==7.0.4, ghc ==7.2.2 |
License | BSD-3-Clause |
Copyright | 2011, 2012 Jean-Marie Gaillourdet |
Author | Jean-Marie Gaillourdet and Patrick Michel |
Maintainer | Jean-Marie Gaillourdet <jmg@gaillourdet.net> |
Category | Data, Reflection |
Bug tracker | http://bitbucket.org/jmg/global-variables/issues |
Source repo | head: hg clone http://bitbucket.org/jmg/global-variables |
Uploaded | by JeanMarieGaillourdet at 2012-03-03T09:25:25Z |
Distributions | |
Reverse Dependencies | 2 direct, 0 indirect [details] |
Downloads | 2898 total (12 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |