From the abstract of State in Haskell (1995):
-
…with the caveat that some of those algorithms have now been superseded by “mutability-free” alternatives - otherwise, there’s still the type
ST s a
, and most importantly:runST :: (forall s . ST s a) -> a
-
…with the caveat that:
…oh, that’s right - they didn’t. But they’re not the only ones wanting Haskell to be rid of
IO a
: