-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Strict variants of mutable data types from base.
--
-- Strict (WHNF) variants of Chan, IORef and
-- MVar for proactive prevention of space leaks.
@package strict-mutable-base
@version 1.0.0.0
-- | For full documentation please refer to Control.Concurrent.Chan.
module Control.Concurrent.Chan.Strict
-- | A strict (WHNF) variant of Chan.
data Chan' a
-- | newChan for Chan'.
newChan' :: IO (Chan' a)
-- | writeChan for Chan'.
--
-- Evaluates the value to WHNF.
writeChan' :: Chan' a -> a -> IO ()
-- | readChan for Chan'.
readChan' :: Chan' a -> IO a
-- | dupChan for Chan'.
dupChan' :: Chan' a -> IO (Chan' a)
-- | getChanContents for Chan'.
getChanContents' :: Chan' a -> IO [a]
-- | writeList2Chan for Chan'.
--
-- Evaluates the values to WHNF.
writeList2Chan' :: Chan' a -> [a] -> IO ()
instance GHC.Classes.Eq (Control.Concurrent.Chan.Strict.Chan' a)
-- | For full documentation please refer to Control.Concurrent.MVar.
module Control.Concurrent.MVar.Strict
-- | Strict (WHNF) version of MVar.
data MVar' a
-- | newEmptyMVar for an MVar'.
newEmptyMVar' :: IO (MVar' a)
-- | newMVar for an MVar'.
--
-- Evaluates the initial value to WHNF.
newMVar' :: a -> IO (MVar' a)
-- | takeMVar for an MVar'.
takeMVar' :: MVar' a -> IO a
-- | putMVar for an MVar'.
--
-- Evaluates the new value to WHNF.
putMVar' :: MVar' a -> a -> IO ()
-- | readMVar for an MVar'.
readMVar' :: MVar' a -> IO a
-- | swapMVar for an MVar'.
--
-- Evaluates the new value to WHNF.
swapMVar' :: MVar' a -> a -> IO a
-- | tryTakeMVar for an MVar'.
tryTakeMVar' :: MVar' a -> IO (Maybe a)
-- | tryPutMVar for an MVar'.
--
-- Evaluates the new value to WHNF.
tryPutMVar' :: MVar' a -> a -> IO Bool
-- | tryReadMVar for an MVar'.
tryReadMVar' :: MVar' a -> IO (Maybe a)
-- | isEmptyMVar for an MVar'.
isEmptyMVar' :: MVar' a -> IO Bool
-- | withMVar for an MVar'.
withMVar' :: MVar' a -> (a -> IO b) -> IO b
-- | withMVarMasked for an MVar'.
withMVar'Masked :: MVar' a -> (a -> IO b) -> IO b
-- | modifyMVar_ for an MVar'.
--
-- Evaluates the new value to WHNF.
modifyMVar'_ :: MVar' a -> (a -> IO a) -> IO ()
-- | modifyMVar for an MVar'.
--
-- Evaluates the new value to WHNF.
modifyMVar' :: MVar' a -> (a -> IO (a, b)) -> IO b
-- | modifyMVarMasked_ for an MVar'.
--
-- Evaluates the new value to WHNF.
modifyMVar'Masked_ :: MVar' a -> (a -> IO a) -> IO ()
-- | modifyMVarMasked for an MVar'.
--
-- Evaluates the new value to WHNF.
modifyMVar'Masked :: MVar' a -> (a -> IO (a, b)) -> IO b
-- | mkWeakMVar for an MVar'.
mkWeakMVar' :: MVar' a -> IO () -> IO (Weak (MVar' a))
instance Control.DeepSeq.NFData1 Control.Concurrent.MVar.Strict.MVar'
instance Control.DeepSeq.NFData (Control.Concurrent.MVar.Strict.MVar' a)
instance GHC.Classes.Eq (Control.Concurrent.MVar.Strict.MVar' a)
-- | For full documentation please refer to Data.IORef.
module Data.IORef.Strict
-- | A strict (WHNF) variant of IORef.
data IORef' a
-- | newIORef for IORef'.
--
-- Evaluates the initial value to WHNF.
newIORef' :: a -> IO (IORef' a)
-- | readIORef for IORef'.
readIORef' :: IORef' a -> IO a
-- | writeIORef for IORef'.
--
-- Evaluates the new value to WHNF.
writeIORef' :: IORef' a -> a -> IO ()
-- | modifyIORef for IORef'.
modifyIORef' :: IORef' a -> (a -> a) -> IO ()
-- | atomicModifyIORef for IORef'.
--
-- Evaluates the new value to WHNF.
atomicModifyIORef' :: IORef' a -> (a -> (a, b)) -> IO b
-- | atomicWriteIORef for IORef'.
--
-- Evaluates the new value to WHNF.
atomicWriteIORef' :: IORef' a -> a -> IO ()
-- | mkWeakIORef for IORef'.
mkWeakIORef' :: IORef' a -> IO () -> IO (Weak (IORef' a))
instance Control.DeepSeq.NFData1 Data.IORef.Strict.IORef'
instance Control.DeepSeq.NFData (Data.IORef.Strict.IORef' a)
instance GHC.Classes.Eq (Data.IORef.Strict.IORef' a)