SimplEnv
Documentation
type InCoercion = Coercion
type OutCoercion = Coercion
setMode :: SimplifierMode -> SimplEnv -> SimplEnv
getMode :: SimplEnv -> SimplifierMode
updMode :: (SimplifierMode -> SimplifierMode) -> SimplEnv -> SimplEnv
type SwitchChecker = SimplifierSwitch -> SwitchResult
data SwitchResult
getSimplIntSwitch :: SwitchChecker -> (Int -> SimplifierSwitch) -> Int
isAmongSimpl :: [SimplifierSwitch] -> SimplifierSwitch -> SwitchResult
intSwitchSet :: (switch -> SwitchResult) -> (Int -> switch) -> Maybe Int
switchIsOn :: (switch -> SwitchResult) -> switch -> Bool
setEnclosingCC :: SimplEnv -> CostCentreStack -> SimplEnv
data SimplEnv
Constructors
SimplEnv | |
Fields
|
pprSimplEnv :: SimplEnv -> SDoc
mkSimplEnv :: SwitchChecker -> SimplifierMode -> SimplEnv
extendIdSubst :: SimplEnv -> Id -> SimplSR -> SimplEnv
extendTvSubst :: SimplEnv -> TyVar -> Type -> SimplEnv
zapSubstEnv :: SimplEnv -> SimplEnv
setSubstEnv :: SimplEnv -> TvSubstEnv -> SimplIdSubst -> SimplEnv
getInScope :: SimplEnv -> InScopeSet
setInScope :: SimplEnv -> SimplEnv -> SimplEnv
setInScopeSet :: SimplEnv -> InScopeSet -> SimplEnv
modifyInScope :: SimplEnv -> CoreBndr -> SimplEnv
addNewInScopeIds :: SimplEnv -> [CoreBndr] -> SimplEnv
inGentleMode :: SimplEnv -> Bool
data SimplSR
Instances
lookupRecBndr :: SimplEnv -> InId -> OutId
simplRecBndrs :: SimplEnv -> [InBndr] -> SimplM SimplEnv
substTyVar :: SimplEnv -> TyVar -> Type
getTvSubst :: SimplEnv -> TvSubst
mkCoreSubst :: SDoc -> SimplEnv -> Subst
data Floats
Instances
isEmptyFloats :: SimplEnv -> Bool
extendFloats :: SimplEnv -> OutBind -> SimplEnv
wrapFloats :: SimplEnv -> OutExpr -> OutExpr
floatBinds :: Floats -> [OutBind]
addRecFloats :: SimplEnv -> SimplEnv -> SimplEnv
doFloatFromRhs :: TopLevelFlag -> RecFlag -> Bool -> OutExpr -> SimplEnv -> Bool