, MVar, newEmptyMVar, newMVar, putMVar, takeMVar, readMVar, swapMVar
, ThreadId, forkIO
,trace
+
+ , Ref, newRef, readRef, writeRef
+
-- Arrrggghhh!!! Help! Help! Help!
-- What?! Prelude.hs doesn't even _define_ most of these things!
,primCompAux,PrimArray,primRunST,primNewArray,primWriteArray
data PrimMutableArray s a -- mutable arrays with Int indices
data PrimMutableByteArray s
+newRef :: a -> ST s (Ref s a)
+newRef = primNewRef
+readRef :: Ref s a -> ST s a
+readRef = primReadRef
+writeRef :: Ref s a -> a -> ST s ()
+writeRef = primWriteRef
+
------------------------------------------------------------------------------
-- ThreadId, MVar, concurrency stuff -----------------------------------------
, MVar, newEmptyMVar, newMVar, putMVar, takeMVar, readMVar, swapMVar
, ThreadId, forkIO
,trace
+
+ , Ref, newRef, readRef, writeRef
+
-- Arrrggghhh!!! Help! Help! Help!
-- What?! Prelude.hs doesn't even _define_ most of these things!
,primCompAux,PrimArray,primRunST,primNewArray,primWriteArray
data PrimMutableArray s a -- mutable arrays with Int indices
data PrimMutableByteArray s
+newRef :: a -> ST s (Ref s a)
+newRef = primNewRef
+readRef :: Ref s a -> ST s a
+readRef = primReadRef
+writeRef :: Ref s a -> a -> ST s ()
+writeRef = primWriteRef
+
------------------------------------------------------------------------------
-- ThreadId, MVar, concurrency stuff -----------------------------------------