ghc-6.12.3: The GHC APISource codeContentsIndex
IOEnv
Synopsis
data IOEnv env a
module MonadUtils
failM :: IOEnv env a
failWithM :: String -> IOEnv env a
data IOEnvFailure = IOEnvFailure
getEnv :: IOEnv env env
setEnv :: env' -> IOEnv env' a -> IOEnv env a
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a
runIOEnv :: env -> IOEnv env a -> IO a
unsafeInterleaveM :: IOEnv env a -> IOEnv env a
tryM :: IOEnv env r -> IOEnv env (Either IOEnvFailure r)
tryAllM :: IOEnv env r -> IOEnv env (Either SomeException r)
tryMostM :: IOEnv env r -> IOEnv env (Either SomeException r)
fixM :: (a -> IOEnv env a) -> IOEnv env a
data IORef a
newMutVar :: a -> IOEnv env (IORef a)
readMutVar :: IORef a -> IOEnv env a
writeMutVar :: IORef a -> a -> IOEnv env ()
updMutVar :: IORef a -> (a -> a) -> IOEnv env ()
atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env b
atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env b
Documentation
data IOEnv env a Source
show/hide Instances
module MonadUtils
failM :: IOEnv env aSource
failWithM :: String -> IOEnv env aSource
data IOEnvFailure Source
Constructors
IOEnvFailure
show/hide Instances
getEnv :: IOEnv env envSource
setEnv :: env' -> IOEnv env' a -> IOEnv env aSource
Perform a computation with a different environment
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env aSource
Perform a computation with an altered environment
runIOEnv :: env -> IOEnv env a -> IO aSource
unsafeInterleaveM :: IOEnv env a -> IOEnv env aSource
tryM :: IOEnv env r -> IOEnv env (Either IOEnvFailure r)Source
tryAllM :: IOEnv env r -> IOEnv env (Either SomeException r)Source
tryMostM :: IOEnv env r -> IOEnv env (Either SomeException r)Source
fixM :: (a -> IOEnv env a) -> IOEnv env aSource
data IORef a Source
A mutable variable in the IO monad
show/hide Instances
newMutVar :: a -> IOEnv env (IORef a)Source
readMutVar :: IORef a -> IOEnv env aSource
writeMutVar :: IORef a -> a -> IOEnv env ()Source
updMutVar :: IORef a -> (a -> a) -> IOEnv env ()Source
atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env bSource
Atomically update the reference. Does not force the evaluation of the new variable contents. For strict update, use atomicUpdMutVar'.
atomicUpdMutVar' :: IORef a -> (a -> (a, b)) -> IOEnv env bSource
Strict variant of atomicUpdMutVar.
Produced by Haddock version 2.6.1