fn unify(&self, other: &Self) -> TractResult<Self> {
        let fact = match (self, other) {
            (_, GenericFact::Any) => self.clone(),
            (GenericFact::Any, _) => other.clone(),
            _ if self == other => self.clone(),
            _ => bail!("Impossible to unify {:?} with {:?}.", self, other),
        };

        Ok(fact)
    }
/// Tries to unify the fact with another fact of the same type.
Tries to unify the fact with another fact of the same type.
Tries to unify the fact with another fact of the same type .
fn unify(&self, other: &Self) -> TractResult<Self> {
        let fact = match (self, other) {
            (_, GenericFact::Any) => self.clone(),
            (GenericFact::Any, _) => other.clone(),
            _ if self == other => self.clone(),
            _ => bail!("Impossible to unify {:?} with {:?}.", self, other),
        };
        Ok(fact)
    }
fn unify ( & self , other : & Self ) -> TractResult < Self > { let fact = match ( self , other ) { ( _ , GenericFact :: Any ) => self . clone ( ) , ( GenericFact :: Any , _ ) => other . clone ( ) , _ if self == other => self . clone ( ) , _ => bail ! ( " " self other ) , } ; Ok ( fact ) }
Tries to unify the fact with another fact of the same type.
Tries to unify the fact with another fact of the same type .
&self
other
&Self
&self
other
&Self