public override bool Equals(object obj)
{
if (obj == null)
return false;
if (!(obj is NameVerbValueFact))
return false;
NameVerbValueFact fact = (NameVerbValueFact)obj;
if (this.name != fact.name)
return false;
if (this.verb != fact.verb)
return false;
if (this.value == null)
return fact.value == null;
if (!this.value.Equals(fact.value))
return false;
return true;
}