SimplEnv

ghc-8.0.1: The GHC API

Safe Haskell | None
Language | Haskell2010

SimplEnv

# Documentation

type InId = Id #

type InBind = CoreBind #

type InExpr = CoreExpr #

type InAlt = CoreAlt #

type InArg = CoreArg #

type InType = Type #

type InBndr = CoreBndr #

type InVar = Var #

type OutId = Id #

type OutTyVar = TyVar #

type OutBind = CoreBind #

type OutExpr = CoreExpr #

type OutAlt = CoreAlt #

type OutArg = CoreArg #

type OutType = Type #

type OutBndr = CoreBndr #

type OutVar = Var #

type InCoercion = Coercion #

type OutCoercion = Coercion #

setMode :: SimplifierMode -> SimplEnv -> SimplEnv #

getMode :: SimplEnv -> SimplifierMode #

updMode :: (SimplifierMode -> SimplifierMode) -> SimplEnv -> SimplEnv #

data SimplEnv #

Constructors

SimplEnv |
Fields seMode :: SimplifierMode seTvSubst :: TvSubstEnv seCvSubst :: CvSubstEnv seIdSubst :: SimplIdSubst seInScope :: InScopeSet seFloats :: Floats

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 #

setInScope :: SimplEnv -> SimplEnv -> SimplEnv #

setInScopeSet :: SimplEnv -> InScopeSet -> SimplEnv #

modifyInScope :: SimplEnv -> CoreBndr -> SimplEnv #

addNewInScopeIds :: SimplEnv -> [CoreBndr] -> SimplEnv #

getSimplRules :: SimplM RuleEnv #

data SimplSR #

Constructors

DoneEx OutExpr |
DoneId OutId |
ContEx TvSubstEnv CvSubstEnv SimplIdSubst InExpr |

Instances

Outputable SimplSR # |
Methods ppr :: SimplSR -> SDoc # pprPrec :: Rational -> SimplSR -> SDoc #

mkContEx :: SimplEnv -> InExpr -> SimplSR #

substId :: SimplEnv -> InId -> SimplSR #

lookupRecBndr :: SimplEnv -> InId -> OutId #

refineFromInScope :: InScopeSet -> Var -> Var #

simplNonRecBndr :: SimplEnv -> InBndr -> SimplM (SimplEnv, OutBndr) #

simplRecBndrs :: SimplEnv -> [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 #

Instances

Outputable Floats # |
Methods ppr :: Floats -> SDoc # pprPrec :: Rational -> Floats -> SDoc #

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] #