/// <summary> /// Binds this object to another one. /// </summary> /// <param name="term"></param> public virtual void Bind(AbstractTerm term) { AbstractTerm t1 = this; AbstractTerm t2 = term; AMTrail trail = AMTrail.Instance; // if t1 is a reference // and // (t2 is not a reference) or address2 < address1 if (t1.IsReference && !t2.IsReference) { Assign(t2); trail.Trail(t1); } else { t2.Assign(t1); trail.Trail(t2); } }