public override int GetHashCode() { var result = IsRooted.GetHashCode(); foreach (var c in Components) result = result * 83 + c.GetHashCode(); return result; }