fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool> {
        let new = self.unify(&other)?;
        let mut changed = false;
        if &new != self {
            changed = true;
            *self = new.clone();
        }
        if &new != other {
            changed = true;
            *other = new;
        }
        Ok(changed)
    }
/// Tries to unify the fact with another fact of the same type and update
/// both of them.
///
/// Returns true if it actually changed something.
Tries to unify the fact with another fact of the same type and update
both of them.

Returns true if it actually changed something.
Tries to unify the fact with another fact of the same type and update both of them . Returns true if it actually changed something .
fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool> {
        let new = self.unify(&other)?;
        let mut changed = false;
        if &new != self {
            changed = true;
            *self = new.clone();
        }
        if &new != other {
            changed = true;
            *other = new;
        }
        Ok(changed)
    }
fn unify_with_mut ( & mut self , other : & mut Self ) -> TractResult < bool > { let new = self . unify ( & other ) ? ; let mut changed = false ; if & new != self { changed = true ; * self = new . clone ( ) ; } if & new != other { changed = true ; * other = new ; } Ok ( changed ) }
Tries to unify the fact with another fact of the same type and update
both of them.
Tries to unify the fact with another fact of the same type and update both of them .
&mut self
other
&mut Self
&mut self
other
&mut Self