Safe Haskell | None |
---|---|
Language | Haskell2010 |
- setMode :: SimplifierMode -> SimplEnv -> SimplEnv
- getMode :: SimplEnv -> SimplifierMode
- updMode :: (SimplifierMode -> SimplifierMode) -> SimplEnv -> SimplEnv
- data SimplEnv = SimplEnv {
- seMode :: SimplifierMode
- seTvSubst :: TvSubstEnv
- seCvSubst :: CvSubstEnv
- seIdSubst :: SimplIdSubst
- seInScope :: InScopeSet
- seFloats :: Floats
- seJoinFloats :: JoinFloats
- type StaticEnv = SimplEnv
- pprSimplEnv :: SimplEnv -> SDoc
- mkSimplEnv :: SimplifierMode -> SimplEnv
- extendIdSubst :: SimplEnv -> Id -> SimplSR -> SimplEnv
- extendTvSubst :: SimplEnv -> TyVar -> Type -> SimplEnv
- extendCvSubst :: SimplEnv -> CoVar -> Coercion -> SimplEnv
- zapSubstEnv :: SimplEnv -> SimplEnv
- setSubstEnv :: SimplEnv -> TvSubstEnv -> CvSubstEnv -> SimplIdSubst -> SimplEnv
- getInScope :: SimplEnv -> InScopeSet
- setInScopeAndZapFloats :: SimplEnv -> SimplEnv -> SimplEnv
- setInScopeSet :: SimplEnv -> InScopeSet -> SimplEnv
- modifyInScope :: SimplEnv -> CoreBndr -> SimplEnv
- addNewInScopeIds :: SimplEnv -> [CoreBndr] -> SimplEnv
- getSimplRules :: SimplM RuleEnv
- data SimplSR
- = DoneEx OutExpr
- | DoneId OutId
- | ContEx TvSubstEnv CvSubstEnv SimplIdSubst InExpr
- mkContEx :: SimplEnv -> InExpr -> SimplSR
- substId :: SimplEnv -> InId -> SimplSR
- lookupRecBndr :: SimplEnv -> InId -> OutId
- refineFromInScope :: InScopeSet -> Var -> Var
- isJoinIdInEnv_maybe :: SimplEnv -> InId -> Maybe JoinArity
- simplNonRecBndr :: SimplEnv -> InBndr -> SimplM (SimplEnv, OutBndr)
- simplNonRecJoinBndr :: SimplEnv -> OutType -> InBndr -> SimplM (SimplEnv, OutBndr)
- simplRecBndrs :: SimplEnv -> [InBndr] -> SimplM SimplEnv
- simplRecJoinBndrs :: SimplEnv -> OutType -> [InBndr] -> SimplM SimplEnv
- simplBinder :: SimplEnv -> InBndr -> SimplM (SimplEnv, OutBndr)
- simplBinders :: SimplEnv -> [InBndr] -> SimplM (SimplEnv, [OutBndr])
- substTy :: SimplEnv -> Type -> Type
- substTyVar :: SimplEnv -> TyVar -> Type
- getTCvSubst :: SimplEnv -> TCvSubst
- substCo :: SimplEnv -> Coercion -> Coercion
- substCoVar :: SimplEnv -> CoVar -> Coercion
- data Floats
- emptyFloats :: Floats
- isEmptyFloats :: SimplEnv -> Bool
- addNonRec :: SimplEnv -> OutId -> OutExpr -> SimplEnv
- addFloats :: SimplEnv -> SimplEnv -> SimplEnv
- extendFloats :: SimplEnv -> OutBind -> SimplEnv
- wrapFloats :: SimplEnv -> OutExpr -> OutExpr
- setFloats :: SimplEnv -> SimplEnv -> SimplEnv
- zapFloats :: SimplEnv -> SimplEnv
- addRecFloats :: SimplEnv -> SimplEnv -> SimplEnv
- mapFloats :: SimplEnv -> ((Id, CoreExpr) -> (Id, CoreExpr)) -> SimplEnv
- doFloatFromRhs :: TopLevelFlag -> RecFlag -> Bool -> OutExpr -> SimplEnv -> Bool
- getFloatBinds :: SimplEnv -> [CoreBind]
- type JoinFloats = OrdList OutBind
- emptyJoinFloats :: JoinFloats
- isEmptyJoinFloats :: SimplEnv -> Bool
- wrapJoinFloats :: SimplEnv -> OutExpr -> OutExpr
- zapJoinFloats :: SimplEnv -> SimplEnv
- restoreJoinFloats :: SimplEnv -> SimplEnv -> SimplEnv
- getJoinFloatBinds :: SimplEnv -> [CoreBind]
The simplifier mode
getMode :: SimplEnv -> SimplifierMode Source #
updMode :: (SimplifierMode -> SimplifierMode) -> SimplEnv -> SimplEnv Source #
Environments
SimplEnv | |
|
pprSimplEnv :: SimplEnv -> SDoc Source #
mkSimplEnv :: SimplifierMode -> SimplEnv Source #
zapSubstEnv :: SimplEnv -> SimplEnv Source #
setSubstEnv :: SimplEnv -> TvSubstEnv -> CvSubstEnv -> SimplIdSubst -> SimplEnv Source #
getInScope :: SimplEnv -> InScopeSet Source #
setInScopeSet :: SimplEnv -> InScopeSet -> SimplEnv Source #
Substitution results
A substitution result.
DoneEx OutExpr | |
DoneId OutId | |
ContEx TvSubstEnv CvSubstEnv SimplIdSubst InExpr |
refineFromInScope :: InScopeSet -> Var -> Var Source #
Simplifying Id
binders
getTCvSubst :: SimplEnv -> TCvSubst Source #
Floats
emptyFloats :: Floats Source #
isEmptyFloats :: SimplEnv -> Bool Source #
doFloatFromRhs :: TopLevelFlag -> RecFlag -> Bool -> OutExpr -> SimplEnv -> Bool Source #
getFloatBinds :: SimplEnv -> [CoreBind] Source #
type JoinFloats = OrdList OutBind Source #
isEmptyJoinFloats :: SimplEnv -> Bool Source #
zapJoinFloats :: SimplEnv -> SimplEnv Source #
getJoinFloatBinds :: SimplEnv -> [CoreBind] Source #