EqualityComparer<T> used instead of Comparer<T> for equality comparison in collection utils