The acme-realworld package

[Tags:bsd3, library]

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

    -- After realizing that was a terrible, terrible mistake, restore the
    -- pre-war state of the universe.
    putWorld world_as_we_know_it


Versions 0.1, 0.1.1
Dependencies base (==4.*) [details]
License BSD3
Copyright Copyright (c) Joseph Adams 2011
Author Joey Adams
Category Acme
Uploaded Fri Dec 9 06:22:24 UTC 2011 by JoeyAdams
Distributions NixOS:0.1.1
Downloads 770 total (15 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2016-12-26 [all 8 reports]
Hackage Matrix CI


  • Acme
    • Acme.RealWorld


Maintainer's Corner

For package maintainers and hackage trustees