Safe Haskell | None |
---|
- externals :: [External]
- alphaR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM Core
- alphaLamR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Maybe Name -> Rewrite c HermitM CoreExpr
- alphaCaseBinderR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Maybe Name -> Rewrite c HermitM CoreExpr
- alphaAltWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Name] -> Rewrite c HermitM CoreAlt
- alphaAltVarsR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Var] -> Rewrite c HermitM CoreAlt
- alphaAltR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreAlt
- alphaCaseR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreExpr
- alphaLetWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Name] -> Rewrite c HermitM CoreExpr
- alphaLetVarsR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Var] -> Rewrite c HermitM CoreExpr
- alphaLetR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreExpr
- alphaProgConsWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c) => [Name] -> Rewrite c HermitM CoreProg
- unshadowR :: forall c. (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM Core
- visibleVarsT :: (BoundVars c, Monad m) => Translate c m CoreExpr VarSet
- freshNameGenT :: (BoundVars c, Monad m) => Maybe Name -> Translate c m CoreExpr (String -> String)
- freshNameGenAvoiding :: Maybe Name -> VarSet -> String -> String
- replaceVarR :: (Injection a Core, MonadCatch m) => Var -> Var -> Rewrite c m a
Alpha-Renaming and Shadowing
Alpha-Renaming
alphaR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreSource
Alpha rename any bindings at this node. Note: does not rename case alternatives unless invoked on the alternative.
alphaLamR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Maybe Name -> Rewrite c HermitM CoreExprSource
Alpha rename a lambda binder. Optionally takes a suggested new name.
alphaCaseBinderR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Maybe Name -> Rewrite c HermitM CoreExprSource
Alpha rename a case binder. Optionally takes a suggested new name.
alphaAltWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Name] -> Rewrite c HermitM CoreAltSource
Rename the variables bound in a case alternative with the given list of suggested names.
alphaAltVarsR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Var] -> Rewrite c HermitM CoreAltSource
Rename the specified variables in a case alternative.
alphaAltR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreAltSource
Rename all identifiers bound in a case alternative.
alphaCaseR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreExprSource
Rename all identifiers bound in a case expression.
alphaLetWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Name] -> Rewrite c HermitM CoreExprSource
Rename the identifiers bound in a Let with the given list of suggested names.
alphaLetVarsR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => [Var] -> Rewrite c HermitM CoreExprSource
Rename the specified variables bound in a let.
alphaLetR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreExprSource
Rename all identifiers bound in a Let.
alphaProgConsWithR :: (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c) => [Name] -> Rewrite c HermitM CoreProgSource
Rename the identifiers bound in the top-level binding at the head of the program with the given list of suggested names.
Shadow Detection and Unshadowing
unshadowR :: forall c. (ExtendPath c Crumb, ReadPath c Crumb, AddBindings c, BoundVars c) => Rewrite c HermitM CoreSource
Rename local variables with manifestly unique names (x, x0, x1, ...). Does not rename top-level definitions.
visibleVarsT :: (BoundVars c, Monad m) => Translate c m CoreExpr VarSetSource
List all visible identifiers (in the expression or the context).
freshNameGenT :: (BoundVars c, Monad m) => Maybe Name -> Translate c m CoreExpr (String -> String)Source
If a name is provided replace the string with that, otherwise modify the string making sure to not clash with any visible variables.
freshNameGenAvoiding :: Maybe Name -> VarSet -> String -> StringSource
Use the optional argument if given, otherwise generate a new name avoiding clashes with the list of variables.
replaceVarR :: (Injection a Core, MonadCatch m) => Var -> Var -> Rewrite c m aSource
Replace all occurrences of a specified variable. Arguments are the variable to replace and the replacement variable, respectively.