I assume that this is to work around the default equalityComparer which only works with primitive types.  Should we use a different equalityComparer instead of manually notifying?