
#13176: Deprecate the realWorld# -------------------------------------+------------------------------------- Reporter: dfeuer | Owner: Type: feature | Status: new request | Priority: normal | Milestone: 8.4.1 Component: Compiler | Version: 8.1 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- There's some about that's intended to prevent problems with the real world. What if we deprecate `realWorld#`? People will still be able to shoot themselves in the foot by ''defining'' `realWorld#` in terms of `runRW#`, but a warning in the documentation should hopefully be sufficient to prevent that. Another, considerably more invasive, option might be to use something like {{{#!hs runST# :: (forall s . State# s -> o) -> o data RealWorld :: * -> * runIO# :: (forall i . State# (RealWorld i) -> o) -> o }}} This would (I believe) provide a much stronger guarantee that the real world can't escape. But it would probably break considerably more code, so I doubt it would be worth the trouble. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13176 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler