
According to people on that thread, strict ST should not have the same
#13615: Nondeterminism in ‘pure’ function w/ parallel evaluation & memo combinators -------------------------------------+------------------------------------- Reporter: pacak | Owner: bgamari Type: bug | Status: new Priority: highest | Milestone: 8.2.1 Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect result | Unknown/Multiple at runtime | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): problem. I don't totally understand why. In the case of strict ST all effects should be executed before we produce the result. This means that there should be no chance of entering any thunk arising from the `ST` block producing effects, meaning that multiple entry should pose no thread to correctness. However, if my hypothesis from comment:36 holds then it is indeed possible for the garbage collector to suspend a computation before all effects have taken place. This places us in a position where multiple-entry will indeed cause effects to be performed multiple times. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13615#comment:44 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler