/// Rewriting is complete when all rules have been attempted with no change. Rules may be organised
/// The engine will apply rules in an earlier group to the entire tree before trying later groups.
/// rules and the engine-created [`Update`] values which contain their modifications to the tree.
/// fn rule_eval_mul(cmds: &mut Commands<Expr, i32>, subtree: &Expr, meta: &i32) -> Option<Expr> {
/// fn rule_expand_sqr(cmds: &mut Commands<Expr, i32>, subtree: &Expr, meta: &i32) -> Option<Expr> {