fn unify_all(facts: &mut [&mut Self]) -> TractResult<bool> {
        let mut overall_changed = false;
        loop {
            let mut changed = false;
            for i in 0..facts.len() - 1 {
                for j in i + 1..facts.len() {
                    let (left, right) = facts.split_at_mut(j);
                    let c = left[i].unify_with(right[0])?;
                    changed = changed || c;
                    overall_changed = changed || c;
                }
            }
            if !changed {
                return Ok(overall_changed);
            }
        }
    }
/// Tries to unify all facts in the list.
///
///
/// Returns true if it actually changed something.
Tries to unify all facts in the list.
Returns true if it actually changed something.
Tries to unify all facts in the list . Returns true if it actually changed something .
fn unify_all(facts: &mut [&mut Self]) -> TractResult<bool> {
        let mut overall_changed = false;
        loop {
            let mut changed = false;
            for i in 0..facts.len() - 1 {
                for j in i + 1..facts.len() {
                    let (left, right) = facts.split_at_mut(j);
                    let c = left[i].unify_with(right[0])?;
                    changed = changed || c;
                    overall_changed = changed || c;
                }
            }
            if !changed {
                return Ok(overall_changed);
            }
        }
    }
fn unify_all ( facts : & mut [ & mut Self ] ) -> TractResult < bool > { let mut overall_changed = false ; loop { let mut changed = false ; for i in 0 .. facts . len ( ) - 1 { for j in i + 1 .. facts . len ( ) { let ( left , right ) = facts . split_at_mut ( j ) ; let c = left [ i ] . unify_with ( right [ 0 ] ) ? ; changed = changed || c ; overall_changed = changed || c ; } } if ! changed { return Ok ( overall_changed ) ; } } }
Tries to unify all facts in the list.
Tries to unify all facts in the list .
facts
&mut [&mut Self]
facts
&mut [&mut Self]