| ghc-6.10.4: The GHC API | Contents | Index
SimplMonad
Synopsis
data SimplM result
initSmpl :: DynFlags -> RuleBase -> (FamInstEnv, FamInstEnv) -> UniqSupply -> SimplM a -> (a, SimplCount)
getDOptsSmpl :: SimplM DynFlags
getSimplRules :: SimplM RuleBase
getFamEnvs :: SimplM (FamInstEnv, FamInstEnv)
class Monad m => MonadUnique m where
getUniqueSupplyM :: m UniqSupply
getUniqueM :: m Unique
getUniquesM :: m [Unique]
newId :: FastString -> Type -> SimplM Id
data SimplCount
data Tick
= PreInlineUnconditionally Id
| PostInlineUnconditionally Id
| UnfoldingDone Id
| RuleFired FastString
| LetFloatFromLet
| EtaExpansion Id
| EtaReduction Id
| BetaReduction Id
| CaseOfCase Id
| KnownBranch Id
| CaseMerge Id
| AltMerge Id
| CaseElim Id
| CaseIdentity Id
| FillInCaseDefault Id
| BottomFound
| SimplifierDone
tick :: Tick -> SimplM ()
freeTick :: Tick -> SimplM ()
getSimplCount :: SimplM SimplCount
zeroSimplCount :: DynFlags -> SimplCount
pprSimplCount :: SimplCount -> SDoc
plusSimplCount :: SimplCount -> SimplCount -> SimplCount
isZeroSimplCount :: SimplCount -> Bool
type SwitchChecker = SimplifierSwitch -> SwitchResult
data SwitchResult
= SwBool Bool
| SwString FastString
| SwInt Int
getSimplIntSwitch :: SwitchChecker -> (Int -> SimplifierSwitch) -> Int
isAmongSimpl :: [SimplifierSwitch] -> SimplifierSwitch -> SwitchResult
intSwitchSet :: (switch -> SwitchResult) -> (Int -> switch) -> Maybe Int
switchIsOn :: (switch -> SwitchResult) -> switch -> Bool
Documentation
data SimplM result
Instances
Monad SimplM
MonadUnique SimplM
initSmpl :: DynFlags -> RuleBase -> (FamInstEnv, FamInstEnv) -> UniqSupply -> SimplM a -> (a, SimplCount)
getDOptsSmpl :: SimplM DynFlags
getSimplRules :: SimplM RuleBase
getFamEnvs :: SimplM (FamInstEnv, FamInstEnv)
class Monad m => MonadUnique m where
A monad for generating unique identifiers
Methods
getUniqueSupplyM :: m UniqSupply
Get a new UniqueSupply
getUniqueM :: m Unique
Get a new unique identifier
getUniquesM :: m [Unique]
Get an infinite list of new unique identifiers
Instances
MonadUnique UniqSM
MonadUnique FuelMonad
MonadUnique SimplM
MonadUnique (IOEnv (Env gbl lcl))
MonadUnique (DFM' FuelMonad f)
newId :: FastString -> Type -> SimplM Id
data SimplCount
data Tick
Constructors
PreInlineUnconditionally Id |
PostInlineUnconditionally Id |
UnfoldingDone Id |
RuleFired FastString |
LetFloatFromLet |
EtaExpansion Id |
EtaReduction Id |
BetaReduction Id |
CaseOfCase Id |
KnownBranch Id |
CaseMerge Id |
AltMerge Id |
CaseElim Id |
CaseIdentity Id |
FillInCaseDefault Id |
BottomFound |
SimplifierDone |
Instances
Eq Tick
Ord Tick
Outputable Tick
tick :: Tick -> SimplM ()
freeTick :: Tick -> SimplM ()
getSimplCount :: SimplM SimplCount
zeroSimplCount :: DynFlags -> SimplCount
pprSimplCount :: SimplCount -> SDoc
plusSimplCount :: SimplCount -> SimplCount -> SimplCount
isZeroSimplCount :: SimplCount -> Bool
type SwitchChecker = SimplifierSwitch -> SwitchResult
data SwitchResult
Constructors
SwBool Bool |
SwString FastString |
SwInt Int |
getSimplIntSwitch :: SwitchChecker -> (Int -> SimplifierSwitch) -> Int
isAmongSimpl :: [SimplifierSwitch] -> SimplifierSwitch -> SwitchResult
intSwitchSet :: (switch -> SwitchResult) -> (Int -> switch) -> Maybe Int
switchIsOn :: (switch -> SwitchResult) -> switch -> Bool
Produced by Haddock version 2.4.2