fn check_rewrite<'a, N: Analysis<L>>(
        current: &'a FlatTerm<L>,
        next: &'a FlatTerm<L>,
        rewrite: &Rewrite<L, N>,
    ) -> bool {
        if let Some(lhs) = rewrite.searcher.get_pattern_ast() {
            if let Some(rhs) = rewrite.applier.get_pattern_ast() {
                if &current.rewrite(lhs, rhs) != next {
                    return false;
                }
            }
        }
        true
    }
// if the rewrite is just patterns, then it can check it
if the rewrite is just patterns, then it can check it
if the rewrite is just patterns then it can check it
fn check_rewrite<'a, N: Analysis<L>>(
        current: &'a FlatTerm<L>,
        next: &'a FlatTerm<L>,
        rewrite: &Rewrite<L, N>,
    ) -> bool {
        if let Some(lhs) = rewrite.searcher.get_pattern_ast() {
            if let Some(rhs) = rewrite.applier.get_pattern_ast() {
                if &current.rewrite(lhs, rhs) != next {
                    return false;
                }
            }
        }
        true
    }
fn check_rewrite < ' a , N : Analysis < L > > ( current : & ' a FlatTerm < L > , next : & ' a FlatTerm < L > , rewrite : & Rewrite < L , N > , ) -> bool { if let Some ( lhs ) = rewrite . searcher . get_pattern_ast ( ) { if let Some ( rhs ) = rewrite . applier . get_pattern_ast ( ) { if & current . rewrite ( lhs , rhs ) != next { return false ; } } } true }
if the rewrite is just patterns, then it can check it
if the rewrite is just patterns then it can check it
current
&'a FlatTerm<L>
next
&'a FlatTerm<L>
rewrite
&Rewrite<L, N>
current
&'a FlatTerm<L>
next
&'a FlatTerm<L>
rewrite
&Rewrite<L, N>