public bool Equals(VectorClock rhs) { if (ReferenceEquals(this, rhs)) { return(true); } if (ReferenceEquals(rhs, null)) { return(false); } if (Versions.Count != rhs.Versions.Count) { return(false); } if (Versions.Zip(rhs.Versions, (x, y) => x == y).Exists(x => !x)) { return(false); } return(true); }