ghc-lib-0.1.0: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

StgSubst

Documentation

data Subst Source #

A renaming substitution from Id s to Id s. Like RnEnv2 , but not maintaining pairs of substitutions. Like CoreSubst.Subst , but with the domain being Id s instead of entire CoreExpr.

Constructors

type IdSubstEnv = IdEnv Id Source #

emptySubst :: Subst Source #

emptySubst = mkEmptySubst  emptyInScopeSet 

mkEmptySubst :: InScopeSet -> Subst Source #

Constructs a new Subst assuming the variables in the given InScopeSet are in scope.

substBndr :: Id -> Subst -> (Id, Subst) Source #

Substitutes an Id for another one according to the Subst given in a way that avoids shadowing the InScopeSet , returning the result and an updated Subst that should be used by subsequent substitutions.

substBndrs :: Traversable f => f Id -> Subst -> (f Id, Subst) Source #

substBndrs = runState . traverse (state . substBndr)

lookupIdSubst :: HasCallStack => Id -> Subst -> Id Source #

Substitutes an occurrence of an identifier for its counterpart recorded in the Subst .

noWarnLookupIdSubst :: HasCallStack => Id -> Subst -> Id Source #

Substitutes an occurrence of an identifier for its counterpart recorded in the Subst . Does not generate a debug warning if the identifier to to substitute wasn't in scope.

extendInScope :: Id -> Subst -> Subst Source #

Add the Id to the in-scope set and remove any existing substitutions for it.

extendSubst :: Id -> Id -> Subst -> Subst Source #

Add a substitution for an Id to the Subst : you must ensure that the in-scope set is such that TyCORep Note [The substitution invariant] holds after extending the substitution like this.

AltStyle によって変換されたページ (->オリジナル) /