Safe Haskell | None |
---|---|
Language | Haskell2010 |
- externals :: [External]
- type RuleNameString = String
- ruleR :: (ReadBindings c, HasCoreRules c) => RuleNameString -> Rewrite c HermitM CoreExpr
- rulesR :: (ReadBindings c, HasCoreRules c) => [RuleNameString] -> Rewrite c HermitM CoreExpr
- ruleToEqualityT :: (BoundVars c, HasDynFlags m, HasModGuts m, MonadThings m, MonadCatch m) => Transform c m CoreRule CoreExprEquality
- ruleNameToEqualityT :: (BoundVars c, HasCoreRules c) => RuleNameString -> Transform c HermitM a CoreExprEquality
- getHermitRuleT :: HasCoreRules c => RuleNameString -> Transform c HermitM a CoreRule
- getHermitRulesT :: HasCoreRules c => Transform c HermitM a [(RuleNameString, CoreRule)]
- specConstrR :: RewriteH ModGuts
GHC Rewrite Rules and Specialisation
externals :: [External] Source
Externals that reflect GHC functions, or are derived from GHC functions.
Rules
type RuleNameString = String Source
ruleR :: (ReadBindings c, HasCoreRules c) => RuleNameString -> Rewrite c HermitM CoreExpr Source
Lookup a rule and attempt to construct a corresponding rewrite.
rulesR :: (ReadBindings c, HasCoreRules c) => [RuleNameString] -> Rewrite c HermitM CoreExpr Source
ruleToEqualityT :: (BoundVars c, HasDynFlags m, HasModGuts m, MonadThings m, MonadCatch m) => Transform c m CoreRule CoreExprEquality Source
Returns the universally quantified binders, the LHS, and the RHS.
ruleNameToEqualityT :: (BoundVars c, HasCoreRules c) => RuleNameString -> Transform c HermitM a CoreExprEquality Source
getHermitRuleT :: HasCoreRules c => RuleNameString -> Transform c HermitM a CoreRule Source
getHermitRulesT :: HasCoreRules c => Transform c HermitM a [(RuleNameString, CoreRule)] Source
Return all the RULES (including specialization RULES on binders) currently in scope.
Specialisation
specConstrR :: RewriteH ModGuts Source
Run GHC's specConstr pass, and apply any rules generated.