acme-realworld: Primitives for manipulating the state of the universe
GHC represents an IO action internally as a function from one state of the world to the next:
State# RealWorld -> (# State# RealWorld, a #)
This module provides a very useful capability stemming directly from this representation: the ability to save the current state of the universe and restore it later. This provides a way to "undo" certain types of side effects in the IO monad:
import Acme.Missiles
import Acme.RealWorld
main :: IO ()
main = do
-- Save the current state of the universe
world_as_we_know_it <- getWorld
-- Cause serious international side effects
launchMissiles
-- After realizing that was a terrible, terrible mistake, restore the
-- pre-war state of the universe.
putWorld world_as_we_know_it
Downloads
- acme-realworld-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] | 0.1, 0.1.1 |
|---|---|
| Dependencies | base (>=4 && <5) [details] |
| License | BSD-3-Clause |
| Copyright | Copyright (c) Joseph Adams 2011 |
| Author | Joey Adams |
| Maintainer | joeyadams3.14159@gmail.com |
| Category | Acme |
| Uploaded | by JoeyAdams at 2011-12-09T09:01:13Z |
| Distributions | NixOS:0.1.1 |
| Reverse Dependencies | 1 direct, 0 indirect [details] |
| Downloads | 2483 total (1 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] |