/// Marks two eclasses to be unioned given their ids.
///
/// At the end of each iteration, these classes are unioned during
/// [`rebuild`](EGraph::rebuild).
///
/// The given ids need not be canonical.
/// The returned `bool` indicates whether a union is necessary,
/// so it's `false` if they were already equivalent.
/// Both results are canonical.
///
/// When explanations are enabled, this function is not available.
/// Instead, use [`union_instantiations`](EGraph::union_instantiations).
/// See [`explain_equivalence`](Runner::explain_equivalence) for a more detailed
/// explanation of the feature.
///
/// You must call [`rebuild`](EGraph::rebuild) to observe any effect.
///
Marks two eclasses to be unioned given their ids.
At the end of each iteration, these classes are unioned during
[`rebuild`].

The given ids need not be canonical.
The returned `bool` indicates whether a union is necessary,
so it's `false` if they were already equivalent.
Both results are canonical.

When explanations are enabled, this function is not available.

You must call [`rebuild`] to observe any effect.
Marks two eclasses to be unioned given their ids . At the end of each iteration these classes are unioned during [ ` rebuild ` ] . The given ids need not be canonical . The returned ` bool ` indicates whether a union is necessary so it ' s ` false ` if they were already equivalent . Both results are canonical . When explanations are enabled this function is not available . You must call [ ` rebuild ` ] to observe any effect .
pub fn union(&mut self, id1: Id, id2: Id) -> bool {
        self.clean = false;
        if self.explain.is_some() {
            panic!("Use union_instantiations when explanation mode is enabled.");
        }
        if self.find_mut(id1) == self.find_mut(id2) {
            false
        } else {
            self.to_union.push((id1, id2, None, false));
            true
        }
    }
pub fn union ( & mut self , id1 : Id , id2 : Id ) -> bool { self . clean = false ; if self . explain . is_some ( ) { panic ! ( " " ) ; } if self . find_mut ( id1 ) == self . find_mut ( id2 ) { false } else { self . to_union . push ( ( id1 , id2 , None , false ) ) ; true } }
Marks two eclasses to be unioned given their ids.
Marks two eclasses to be unioned given their ids .
&mut self
id1
Id
id2
Id