module Concurrent where
data Chan a
data ThreadId
data MVar a
instance Show ThreadId
forkIO :: IO () -> IO ThreadId
forkIO = undefined
threadDelay :: Int -> IO ()
threadDelay = undefined
yield :: IO ()
yield = undefined
killThread :: ThreadId -> IO ()
killThread = undefined
writeChan :: Chan a -> a -> IO ()
writeChan = undefined
newChan :: IO (Chan a)
newChan = undefined
--isEmptyChan ::
isEmptyChan = undefined
--readChan ::
readChan = undefined
getChanContents :: Chan a -> IO [a]
getChanContents = undefined
newEmptyMVar :: IO (MVar a)
newEmptyMVar = undefined
newMVar :: a -> IO (MVar a)
newMVar = undefined
putMVar :: MVar a -> a -> IO ()
putMVar = undefined
readMVar :: MVar a -> IO a
readMVar = undefined
takeMVar :: MVar a -> IO a
takeMVar = undefined
swapMVar :: MVar a -> a -> IO a
swapMVar = undefined