public virtual bool Unify(AbstractTerm term)
{
if (IsAssigned())
{
return _containee.Unify(term);
}
// perform unification here
if (this == term)
{
return true;
}
if (!term.IsReference)
{
this.Assign(term);
return true;
}
else
{
this.Bind(term);
return true;
}
}