private void Verify <T>(T a, T b) { if (!a.Equals(b)) { Debug.Assert(false); throw new InvalidOperationException(string.Format("{0} vs {1} ({2} vs {3})", a, b, A.GetType().Name, B.GetType().Name)); } }