public override bool Equals(Domain d0)
{
if (this == d0)
return true;
if (!(d0 is AllenDomain))
return false;
var d = (AllenDomain)d0;
if (_intervals.Count != d._intervals.Count)
return false;
try {
for (int i = 0; i < _intervals.Count; i++) {
var i0 = (int[])_intervals[i];
var i1 = (int[])d._intervals[i];
if (i0[0] != i1[0] || i0[1] != i1[1])
return false;
}
} catch (IndexOutOfRangeException) {
}
return true;
}