Jikka-5.6.0.0: A transpiler from Python to C++ for competitive programming
Copyright(c) Kimiyuki Onaka 2021
LicenseApache License 2.0
Maintainerkimiyuki95@gmail.com
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Jikka.Core.Language.RewriteRules

Description

 
Synopsis

Documentation

data RewriteRule m Source #

Instances

Instances details
Monad m => Semigroup (RewriteRule m) Source # 
Instance details

Defined in Jikka.Core.Language.RewriteRules

Monad m => Monoid (RewriteRule m) Source # 
Instance details

Defined in Jikka.Core.Language.RewriteRules

Construct Rules

Apply Rules

applyRewriteRule :: MonadError Error m => RewriteRule m -> RewriteEnvironment -> Expr -> m (Maybe Expr) Source #

applyRewriteRule applies a given rule to a given expr. This rewrites on all sub-exprs of the given expr, and repeats to rewrite while it is possible.

  • This function is idempotent.
  • This function doesn't terminate when a given rewrite rule doesn't terminate.