Moduleghc-lib-parser-9.14.1.20251220GHC2021
GHC.Types.Unique.DSM
- 4 types
- 2 classes
- 11 values
- Packageghc-lib-parser-9.14.1.20251220
- Exports20
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceDSM.hs
Threading a deterministic supply
5 declarationsA monad which just gives the ability to obtain Uniques deterministically. There's no splitting.
Instances6Monad, Functor, MonadFix, Applicative, MonadGetUnique, MonadUniqDSM
Monad UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMFunctor UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonadFix UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMApplicative UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonadGetUnique UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonadUniqDSM UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSM
UniqDSM and DUniqSupply operations
Initialize a deterministic unique supply with the given Tag and initial unique.
Tag operations
Set the tag of uniques generated from this deterministic unique supply
Get the tag uniques generated from this deterministic unique supply would have
A transfomer threading a deterministic supply
2 declarationsTransformer version of UniqDSM to use when threading a deterministic
uniq supply over a Monad. Specifically, it is used in the Stream of Cmm
decls.
Instances6Monad, Functor, Applicative, MonadIO, MonadGetUnique, MonadUniqDSM
Monad m => Monad (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMFunctor m => Functor (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonad m => Applicative (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonadIO m => MonadIO (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonad m => MonadGetUnique (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonad m => MonadUniqDSM (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSM
UniqDSMT operations
Like runUniqueDSM but for UniqDSMT
Lift an IO action that depends on, and threads through, a unique supply into UniqDSMT IO.
Change the monad underyling an applied UniqDSMT, i.e. transform a
UniqDSMT m into a UniqDSMT n given m ~> n.
Lift a monadic action m a into an UniqDSMT m a
Tags
Set the tag of the running UniqDSMT supply to the given tag and run an action with it.
All uniques produced in the given action will use this tag, until the tag is changed
again.
Monad class for deterministic supply threading
2 declarationsGet a unique from a monad that can access a unique supply.
Crucially, because MonadGetUnique doesn't allow you to get the
UniqSupply (unlike MonadUnique), an instance such as UniqDSM can use a
deterministic unique supply to return deterministic uniques without allowing
for the UniqSupply to be shared.
Methods
getUniqueM :: m Unique
Instances3MonadGetUnique
MonadGetUnique UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonadGetUnique UniqSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonad m => MonadGetUnique (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSM
Methods
liftUniqDSM :: UniqDSM a -> m aLift a pure UniqDSM action into a MonadUniqDSM such as UniqDSMT
Instances2MonadUniqDSM
MonadUniqDSM UniqDSMDefined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSMMonad m => MonadUniqDSM (UniqDSMT m)Defined in ghc-lib-parser-9.14.1.20251220 · GHC.Types.Unique.DSM