Probably worth mentioning that this doesn't detect changes of associated values, only changes to the collection itself...