public IFormType GetLeastUpperBound(IFormType other)
{
if (Equals(other) || other.IsChildOf(this))
{
return this;
}
else if (IsChildOf(other))
{
return other;
}
Debug.Assert(SuperType != null, "SuperType is null!");
return SuperType.GetLeastUpperBound(other);
}