lhs = mod[0] -> tee(); rhs = mod[1] -> tee(); lhs -> [0]joined; rhs -> [1]joined; joined = join() -> map(|(k, (lhs, rhs))| (k, (Some(lhs), Some(rhs)))) -> combined; lhs -> [pos]missed_lhs; rhs -> map(|(k, _v)| k) -> [neg]missed_lhs; missed_lhs = anti_join() -> map(|(k, v)| (k, (Some(v), None))) -> combined; rhs -> [pos]missed_rhs; lhs -> map(|(k, _v)| k) -> [neg]missed_rhs; missed_rhs = anti_join() -> map(|(k, v)| (k, (None, Some(v)))) -> combined; combined = union() -> mod;