| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
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
- uninterruptibleMaskM_ :: 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
Instances
Instance details
Defined in TcSplice
Methods
qNewName :: String -> TcM Name Source #
qReport :: Bool -> String -> TcM () Source #
qRecover :: TcM a -> TcM a -> TcM a Source #
qLookupName :: Bool -> String -> TcM (Maybe Name) Source #
qReify :: Name -> TcM Info Source #
qReifyFixity :: Name -> TcM (Maybe Fixity) Source #
qReifyInstances :: Name -> [Type] -> TcM [Dec] Source #
qReifyRoles :: Name -> TcM [Role] Source #
qReifyAnnotations :: Data a => AnnLookup -> TcM [a] Source #
qReifyModule :: Module -> TcM ModuleInfo Source #
qReifyConStrictness :: Name -> TcM [DecidedStrictness] Source #
qRunIO :: IO a -> TcM a Source #
qAddDependentFile :: FilePath -> TcM () Source #
qAddTempFile :: String -> TcM FilePath Source #
qAddTopDecls :: [Dec] -> TcM () Source #
qAddForeignFilePath :: ForeignSrcLang -> String -> TcM () Source #
qAddModFinalizer :: Q () -> TcM () Source #
qAddCorePlugin :: String -> TcM () Source #
qGetQ :: Typeable a => TcM (Maybe a) Source #
qPutQ :: Typeable a => a -> TcM () Source #
qIsExtEnabled :: Extension -> TcM Bool Source #
qExtsEnabled :: TcM [Extension] Source #
Instance details
Defined in TcRnMonad
Methods
getUniqueSupplyM :: IOEnv (Env gbl lcl) UniqSupply Source #
Instance details
Defined in TcEnv
Instance details
Defined in DsMonad
module MonadUtils
data IOEnvFailure Source #
Constructors
Instances
Instance details
Defined in IOEnv
Methods
showsPrec :: Int -> IOEnvFailure -> ShowS #
show :: IOEnvFailure -> String #
showList :: [IOEnvFailure] -> ShowS #
Instance details
Defined in IOEnv
Methods
toException :: IOEnvFailure -> SomeException #
fromException :: SomeException -> Maybe IOEnvFailure #
displayException :: IOEnvFailure -> String #
setEnv :: env' -> IOEnv env' a -> IOEnv env a Source #
Perform a computation with a different environment
updEnv :: (env -> env') -> IOEnv env' a -> IOEnv env a Source #
Perform a computation with an altered environment
unsafeInterleaveM :: IOEnv env a -> IOEnv env a Source #
uninterruptibleMaskM_ :: IOEnv env a -> IOEnv env a Source #
A mutable variable in the IO monad
readMutVar :: IORef a -> IOEnv env a Source #
writeMutVar :: IORef a -> a -> IOEnv env () Source #
atomicUpdMutVar :: IORef a -> (a -> (a, b)) -> IOEnv env b Source #
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 Source #
Strict variant of atomicUpdMutVar .