Jean-Marie Gaillourdet committed 43f9a03

Edited online

  • Participants
  • Parent commits 2540453

Comments (0)

Files changed (1)

-== Welcome ==
+== global-variables ==
-Welcome to your wiki! This is the default page we've installed for your convenience. Go ahead and edit it.
+Namespaced, global, and top-level mutable variables without unsafePerformIO.
-=== Wiki features ===
+'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.
-This wiki uses the [[|Creole]] syntax, and is fully compatible with the 1.0 specification.
+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
-The wiki itself is actually a hg repository, which means you can clone it, edit it locally/offline, add images or any other file type, and push it back to us. It will be live immediately.
+Examples are in the documentation of "Data.Global".
-Go ahead and try:
-$ hg clone
-Wiki pages are normal files, with the .wiki extension. You can edit them locally, as well as creating new ones.
-=== Syntax highlighting ===
-You can also highlight snippets of text, we use the excellent [[|Pygments]] library.
-Here's an example of some Python code:
-def wiki_rocks(text):
-	formatter = lambda t: "funky"+t
-	return formatter(text)
-You can check out the source of this page to see how that's done, and make sure to bookmark [[|the vast library of Pygment lexers]], we accept the 'short name' or the 'mimetype' of anything in there.
-Have fun!