fn upward_refs_lt_2(v: Var) -> impl Fn(&mut EGraph, Id, &Subst) -> bool {
    move |egraph, _, subst| {
        match egraph[subst[v]].data.upward_refs.iter().min() {
            Some(min) => *min < 2,
            None => true
        }
    }
}
// outward references are $0 or $1 but not greater
outward references are $0 or $1 but not greater
outward references are $0 or $1 but not greater
fn upward_refs_lt_2(v: Var) -> impl Fn(&mut EGraph, Id, &Subst) -> bool {
    move |egraph, _, subst| {
        match egraph[subst[v]].data.upward_refs.iter().min() {
            Some(min) => *min < 2,
            None => true
        }
    }
}
fn upward_refs_lt_2 ( v : Var ) -> impl Fn ( & mut EGraph , Id , & Subst ) -> bool { move | egraph , _ , subst | { match egraph [ subst [ v ] ] . data . upward_refs . iter ( ) . min ( ) { Some ( min ) => * min < 2 , None => true } } }
outward references are $0 or $1 but not greater
outward references are $0 or $1 but not greater
v
Var
v
Var