projects
/
haskell-directory.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove Control.Parallel*, now in package parallel
[haskell-directory.git]
/
Control
/
Monad
/
ST.hs
diff --git
a/Control/Monad/ST.hs
b/Control/Monad/ST.hs
index
be57243
..
d736eb6
100644
(file)
--- a/
Control/Monad/ST.hs
+++ b/
Control/Monad/ST.hs
@@
-10,7
+10,7
@@
--
-- This library provides support for /strict/ state threads, as
-- described in the PLDI \'94 paper by John Launchbury and Simon Peyton
--
-- This library provides support for /strict/ state threads, as
-- described in the PLDI \'94 paper by John Launchbury and Simon Peyton
--- Jones /Lazy State Threads/.
+-- Jones /Lazy Functional State Threads/.
--
-----------------------------------------------------------------------------
--
-----------------------------------------------------------------------------
@@
-27,20
+27,24
@@
module Control.Monad.ST
-- * Unsafe operations
unsafeInterleaveST, -- :: ST s a -> ST s a
-- * Unsafe operations
unsafeInterleaveST, -- :: ST s a -> ST s a
- unsafeIOToST -- :: IO a -> ST s a
+ unsafeIOToST, -- :: IO a -> ST s a
+ unsafeSTToIO -- :: ST s a -> IO a
) where
import Prelude
import Control.Monad.Fix
) where
import Prelude
import Control.Monad.Fix
-import Data.Typeable
#include "Typeable.h"
#ifdef __HUGS__
#include "Typeable.h"
#ifdef __HUGS__
+import Data.Typeable
import Hugs.ST
import qualified Hugs.LazyST as LazyST
import Hugs.ST
import qualified Hugs.LazyST as LazyST
+INSTANCE_TYPEABLE2(ST,sTTc,"ST")
+INSTANCE_TYPEABLE0(RealWorld,realWorldTc,"RealWorld")
+
fixST :: (a -> ST s a) -> ST s a
fixST f = LazyST.lazyToStrictST (LazyST.fixST (LazyST.strictToLazyST . f))
fixST :: (a -> ST s a) -> ST s a
fixST f = LazyST.lazyToStrictST (LazyST.fixST (LazyST.strictToLazyST . f))
@@
-52,13
+56,9
@@
unsafeInterleaveST =
#ifdef __GLASGOW_HASKELL__
import GHC.ST ( ST, runST, fixST, unsafeInterleaveST )
import GHC.Base ( RealWorld )
#ifdef __GLASGOW_HASKELL__
import GHC.ST ( ST, runST, fixST, unsafeInterleaveST )
import GHC.Base ( RealWorld )
-import GHC.IOBase ( stToIO, unsafeIOToST )
+import GHC.IOBase ( stToIO, unsafeIOToST, unsafeSTToIO )
#endif
instance MonadFix (ST s) where
mfix = fixST
#endif
instance MonadFix (ST s) where
mfix = fixST
--- ---------------------------------------------------------------------------
--- Typeable instance
-
-INSTANCE_TYPEABLE2(ST,sTTc,"ST")