| |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Synopsis | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
Documentation | |||||||||||||||||||||||||||||||||||||||||
data IOEnv env a | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
module MonadUtils | |||||||||||||||||||||||||||||||||||||||||
failM :: IOEnv env a | |||||||||||||||||||||||||||||||||||||||||
failWithM :: String -> IOEnv env a | |||||||||||||||||||||||||||||||||||||||||
data IOEnvFailure | |||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||
getEnv :: IOEnv env env | |||||||||||||||||||||||||||||||||||||||||
setEnv :: env' -> IOEnv env' a -> IOEnv env a | |||||||||||||||||||||||||||||||||||||||||
Perform a computation with a different environment | |||||||||||||||||||||||||||||||||||||||||
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a | |||||||||||||||||||||||||||||||||||||||||
Perform a computation with an altered environment | |||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||
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 b | |||||||||||||||||||||||||||||||||||||||||
Strict variant of atomicUpdMutVar. | |||||||||||||||||||||||||||||||||||||||||
Produced by Haddock version 2.6.1 |