IEqualityComparer<T>は値型のボックス化を防ぐためだけに存在する
クラスならEqualsとGetHashCodeをオーバーライドするだけでいい
実際、structにするとIEquatable<T>.Equalsが呼ばれるようになる