GHC.Core.Opt.Simplify.Monad
Documentation
Instances
MonadIO SimplM Source # | |
Applicative SimplM Source # | |
Functor SimplM Source # | |
Monad SimplM Source # | |
HasDynFlags SimplM Source # | |
Defined in GHC.Core.Opt.Simplify.Monad Methods | |
MonadUnique SimplM Source # | |
Defined in GHC.Core.Opt.Simplify.Monad Methods getUniqueSupplyM :: SimplM UniqSupply Source # getUniqueM :: SimplM Unique Source # getUniquesM :: SimplM [Unique] Source # | |
HasLogger SimplM Source # | |
initSmpl :: Logger -> DynFlags -> IO RuleBase -> RuleEnv -> (FamInstEnv, FamInstEnv) -> Int -> SimplM a -> IO (a, SimplCount) Source #
getFamEnvs :: SimplM (FamInstEnv, FamInstEnv) Source #
class Monad m => MonadUnique m where Source #
A monad for generating unique identifiers
Minimal complete definition
Methods
getUniqueSupplyM :: m UniqSupply Source #
Get a new UniqueSupply
getUniqueM :: m Unique Source #
Get a new unique identifier
getUniquesM :: m [Unique] Source #
Get an infinite list of new unique identifiers
Instances
newJoinId :: [Var] -> Type -> SimplM Id Source #
Make a join id with given type and arity but without call-by-value annotations.
data SimplCount Source #
checkedTick :: Tick -> SimplM () Source #
zeroSimplCount :: DynFlags -> SimplCount Source #
pprSimplCount :: SimplCount -> SDoc Source #
plusSimplCount :: SimplCount -> SimplCount -> SimplCount Source #
isZeroSimplCount :: SimplCount -> Bool Source #