fn options_match_ignoring_symbols(
    opt1: &Option<Box<Expr>>,
    opt2: &Option<Box<Expr>>,
) -> WeldResult<bool> {
    match (opt1, opt2) {
        (&None, &None) => Ok(true),
        (&Some(ref e1), &Some(ref e2)) => e1.compare_ignoring_symbols(e2.as_ref()),
        _ => Ok(false),
    }
}
Are two Option<Box<Expr>> equal ignoring symbols defined inside each one?
weld/src/optimizer/transforms/loop_fusion_2.rs