RealWorld is deeply magical. It is primitive, but it is not unlifted (hence ptrArg). We never manipulate values of type RealWorld; it's only used in the type system, to parameterise State#.
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