Skip to content

Commit a449e16

Browse files
committed
de-prioritize Seq instance
1 parent ccc6c60 commit a449e16

File tree

1 file changed

+22
-10
lines changed
  • kernel/src/main/scala/cats/kernel

1 file changed

+22
-10
lines changed

kernel/src/main/scala/cats/kernel/Eq.scala

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ object Eq
5555
with EqToEquivConversion
5656
with ScalaVersionSpecificOrderInstances
5757
with instances.TupleOrderInstances
58-
with PartialOrderInstances {
58+
with OrderInstances0 {
5959

6060
/**
6161
* Access an implicit `Eq[A]`.
@@ -194,8 +194,6 @@ object Eq
194194
cats.kernel.instances.option.catsKernelStdOrderForOption[A]
195195
implicit def catsKernelOrderForList[A: Order]: Order[List[A]] =
196196
cats.kernel.instances.list.catsKernelStdOrderForList[A]
197-
implicit def catsKernelOrderForSeq[A: Order]: Order[Seq[A]] =
198-
cats.kernel.instances.seq.catsKernelStdOrderForSeq[A]
199197
implicit def catsKernelOrderForVector[A: Order]: Order[Vector[A]] =
200198
cats.kernel.instances.vector.catsKernelStdOrderForVector[A]
201199
implicit def catsKernelOrderForQueue[A: Order]: Order[Queue[A]] =
@@ -221,13 +219,16 @@ object Eq
221219
}
222220
}
223221

224-
private[kernel] trait PartialOrderInstances extends HashInstances {
222+
private[kernel] trait OrderInstances0 extends PartialOrderInstances {
223+
implicit def catsKernelOrderForSeq[A: Order]: Order[Seq[A]] =
224+
cats.kernel.instances.seq.catsKernelStdOrderForSeq[A]
225+
}
226+
227+
private[kernel] trait PartialOrderInstances extends PartialOrderInstances0 {
225228
implicit def catsKernelPartialOrderForOption[A: PartialOrder]: PartialOrder[Option[A]] =
226229
cats.kernel.instances.option.catsKernelStdPartialOrderForOption[A]
227230
implicit def catsKernelPartialOrderForList[A: PartialOrder]: PartialOrder[List[A]] =
228231
cats.kernel.instances.list.catsKernelStdPartialOrderForList[A]
229-
implicit def catsKernelPartialOrderForSeq[A: PartialOrder]: PartialOrder[Seq[A]] =
230-
cats.kernel.instances.seq.catsKernelStdPartialOrderForSeq[A]
231232
implicit def catsKernelPartialOrderForVector[A: PartialOrder]: PartialOrder[Vector[A]] =
232233
cats.kernel.instances.vector.catsKernelStdPartialOrderForVector[A]
233234
implicit def catsKernelPartialOrderForQueue[A: PartialOrder]: PartialOrder[Queue[A]] =
@@ -236,12 +237,16 @@ private[kernel] trait PartialOrderInstances extends HashInstances {
236237
cats.kernel.instances.function.catsKernelPartialOrderForFunction0[A]
237238
}
238239

239-
private[kernel] trait HashInstances extends EqInstances {
240+
private[kernel] trait PartialOrderInstances0 extends HashInstances {
241+
implicit def catsKernelPartialOrderForSeq[A: PartialOrder]: PartialOrder[Seq[A]] =
242+
cats.kernel.instances.seq.catsKernelStdPartialOrderForSeq[A]
243+
}
244+
245+
private[kernel] trait HashInstances extends HashInstances0 {
240246
implicit def catsKernelHashForSet[A]: Hash[Set[A]] = cats.kernel.instances.set.catsKernelStdHashForSet[A]
241247
implicit def catsKernelHashForOption[A: Hash]: Hash[Option[A]] =
242248
cats.kernel.instances.option.catsKernelStdHashForOption[A]
243249
implicit def catsKernelHashForList[A: Hash]: Hash[List[A]] = cats.kernel.instances.list.catsKernelStdHashForList[A]
244-
implicit def catsKernelHashForSeq[A: Hash]: Hash[Seq[A]] = cats.kernel.instances.seq.catsKernelStdHashForSeq[A]
245250
implicit def catsKernelHashForVector[A: Hash]: Hash[Vector[A]] =
246251
cats.kernel.instances.vector.catsKernelStdHashForVector[A]
247252
implicit def catsKernelHashForQueue[A: Hash]: Hash[Queue[A]] =
@@ -258,10 +263,13 @@ private[kernel] trait HashInstances extends EqInstances {
258263
cats.kernel.instances.either.catsStdHashForEither[A, B]
259264
}
260265

261-
private[kernel] trait EqInstances {
266+
private[kernel] trait HashInstances0 extends EqInstances {
267+
implicit def catsKernelHashForSeq[A: Hash]: Hash[Seq[A]] = cats.kernel.instances.seq.catsKernelStdHashForSeq[A]
268+
}
269+
270+
private[kernel] trait EqInstances extends EqInstances0 {
262271
implicit def catsKernelEqForOption[A: Eq]: Eq[Option[A]] = cats.kernel.instances.option.catsKernelStdEqForOption[A]
263272
implicit def catsKernelEqForList[A: Eq]: Eq[List[A]] = cats.kernel.instances.list.catsKernelStdEqForList[A]
264-
implicit def catsKernelEqForSeq[A: Eq]: Eq[Seq[A]] = cats.kernel.instances.seq.catsKernelStdEqForSeq[A]
265273
implicit def catsKernelEqForVector[A: Eq]: Eq[Vector[A]] = cats.kernel.instances.vector.catsKernelStdEqForVector[A]
266274
implicit def catsKernelEqForQueue[A: Eq]: Eq[Queue[A]] = cats.kernel.instances.queue.catsKernelStdEqForQueue[A]
267275
implicit def catsKernelEqForFunction0[A: Eq]: Eq[() => A] = cats.kernel.instances.function.catsKernelEqForFunction0[A]
@@ -271,3 +279,7 @@ private[kernel] trait EqInstances {
271279
implicit def catsKernelEqForEither[A: Eq, B: Eq]: Eq[Either[A, B]] =
272280
cats.kernel.instances.either.catsStdEqForEither[A, B]
273281
}
282+
283+
private[kernel] trait EqInstances0 {
284+
implicit def catsKernelEqForSeq[A: Eq]: Eq[Seq[A]] = cats.kernel.instances.seq.catsKernelStdEqForSeq[A]
285+
}

0 commit comments

Comments
 (0)