-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Concurrent Haskell in ST
--
-- Concurrent Haskell in ST
@package concurrent-st
@version 0.1
-- | This module provides a way to use concurrent haskell inside of
-- ST. Using these function subverts the usual guarentee we have
-- that ST is deterministic.
module Control.Concurrent.ST
data ThreadId s
ThreadId :: ThreadId# -> ThreadId s
-- | Creates a new thread to run the ST computation passed as the
-- argument. Since using the ThreadId often leads to
-- non-determinism, the function forkST_ is typically to be
-- preferred.
forkST :: ST s () -> ST s (ThreadId s)
-- | Creates a new thread to run the ST computation and discard the
-- ThreadId.
forkST_ :: ST s () -> ST s ()
data MVar s a
newEmptyMVar :: ST s (MVar s a)
newMVar :: a -> ST s (MVar s a)
takeMVar :: MVar s a -> ST s a
putMVar :: MVar s a -> a -> ST s ()
readMVar :: MVar s a -> ST s a
tryTakeMVar :: MVar s a -> ST s (Maybe a)
tryPutMVar :: MVar s a -> a -> ST s Bool
isEmptyMVar :: MVar s a -> ST s Bool
tryReadMVar :: MVar s a -> ST s (Maybe a)
instance GHC.Classes.Eq (Control.Concurrent.ST.MVar s a)