[GHC] #13176: Deprecate the realWorld#

GHC ghc-devs at haskell.org
Tue Jan 24 03:19:26 UTC 2017


#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


More information about the ghc-tickets mailing list