hermit-syb-0.1.0.0: HERMIT plugin for optimizing Scrap-Your-Boilerplate traversals.

Safe HaskellNone

HERMIT.Optimization.SYB

Synopsis

Documentation

findTrivial :: t2 -> [(t1, Expr t)] -> [(t1, Expr t)] -> Maybe (t1, Expr t, [(t1, Expr t)], t2)Source

smarttdR :: RewriteH Core -> RewriteH CoreSource

Apply a Rewrite in a bottom-up manner, succeeding if they all succeed.

filterBinds' :: [Id] -> [(Id, CoreExpr)] -> ([(Id, CoreExpr)], [(Id, CoreExpr)])Source

filterBinds :: [Id] -> [(Id, a)] -> [([Id], (Id, a))] -> ([(Id, a)], [(Id, a)])Source

memoFloatAlt :: RewriteH CoreExprSource

case (let bnds in e) of wild alts ==> let bnds in (case e of wild alts) Fails if any variables bound in bnds occurs in alts.