diff --git a/core/src/main/scala-3/cats/derived/DerivedAlternative.scala b/core/src/main/scala-3/cats/derived/DerivedAlternative.scala index af604da1..b52d99ed 100644 --- a/core/src/main/scala-3/cats/derived/DerivedAlternative.scala +++ b/core/src/main/scala-3/cats/derived/DerivedAlternative.scala @@ -31,7 +31,8 @@ object DerivedAlternative: given product[F[_]](using inst: => ProductInstances[Alternative |: Derived, F]): DerivedAlternative[F] = Strict.product(using inst.unify) - trait Product[T[f[_]] <: Alternative[f], F[_]] + @nowarn("msg=unused implicit parameter") + trait Product[T[f[_]] <: Alternative[f], F[_]: ProductInstancesOf[T]] extends Alternative[F], DerivedNonEmptyAlternative.Product[T, F], DerivedMonoidK.Product[T, F] diff --git a/core/src/main/scala-3/cats/derived/DerivedBand.scala b/core/src/main/scala-3/cats/derived/DerivedBand.scala index 709e938e..452b77b5 100644 --- a/core/src/main/scala-3/cats/derived/DerivedBand.scala +++ b/core/src/main/scala-3/cats/derived/DerivedBand.scala @@ -22,7 +22,8 @@ object DerivedBand: given product[A](using inst: => ProductInstances[Band |: Derived, A]): DerivedBand[A] = Strict.product(using inst.unify) - trait Product[F[x] <: Band[x], A] extends DerivedSemigroup.Product[F, A], Band[A] + @nowarn("msg=unused implicit parameter") + trait Product[F[x] <: Band[x], A: ProductInstancesOf[F]] extends DerivedSemigroup.Product[F, A], Band[A] object Strict: given product[A: ProductInstancesOf[Band]]: DerivedBand[A] = diff --git a/core/src/main/scala-3/cats/derived/DerivedBoundedSemilattice.scala b/core/src/main/scala-3/cats/derived/DerivedBoundedSemilattice.scala index 9a46ae83..a2e9ee9c 100644 --- a/core/src/main/scala-3/cats/derived/DerivedBoundedSemilattice.scala +++ b/core/src/main/scala-3/cats/derived/DerivedBoundedSemilattice.scala @@ -22,7 +22,10 @@ object DerivedBoundedSemilattice: given product[A](using inst: => ProductInstances[BoundedSemilattice |: Derived, A]): DerivedBoundedSemilattice[A] = Strict.product(using inst.unify) - trait Product[F[x] <: BoundedSemilattice[x], A] extends DerivedCommutativeMonoid.Product[F, A], BoundedSemilattice[A] + @nowarn("msg=unused implicit parameter") + trait Product[F[x] <: BoundedSemilattice[x], A: ProductInstancesOf[F]] + extends DerivedCommutativeMonoid.Product[F, A], + BoundedSemilattice[A] object Strict: given product[A: ProductInstancesOf[BoundedSemilattice]]: DerivedBoundedSemilattice[A] = diff --git a/core/src/main/scala-3/cats/derived/DerivedCommutativeGroup.scala b/core/src/main/scala-3/cats/derived/DerivedCommutativeGroup.scala index 9fedb6b7..6a5a0839 100644 --- a/core/src/main/scala-3/cats/derived/DerivedCommutativeGroup.scala +++ b/core/src/main/scala-3/cats/derived/DerivedCommutativeGroup.scala @@ -22,7 +22,10 @@ object DerivedCommutativeGroup: given product[A](using inst: => ProductInstances[CommutativeGroup |: Derived, A]): DerivedCommutativeGroup[A] = Strict.product(using inst.unify) - trait Product[F[x] <: CommutativeGroup[x], A] extends DerivedGroup.Product[F, A], CommutativeGroup[A] + @nowarn("msg=unused implicit parameter") + trait Product[F[x] <: CommutativeGroup[x], A: ProductInstancesOf[F]] + extends DerivedGroup.Product[F, A], + CommutativeGroup[A] object Strict: given product[A: ProductInstancesOf[CommutativeGroup]]: DerivedCommutativeGroup[A] = diff --git a/core/src/main/scala-3/cats/derived/DerivedNonEmptyAlternative.scala b/core/src/main/scala-3/cats/derived/DerivedNonEmptyAlternative.scala index 794dbb93..134f1489 100644 --- a/core/src/main/scala-3/cats/derived/DerivedNonEmptyAlternative.scala +++ b/core/src/main/scala-3/cats/derived/DerivedNonEmptyAlternative.scala @@ -33,7 +33,8 @@ object DerivedNonEmptyAlternative: ): DerivedNonEmptyAlternative[F] = Strict.product(using inst.unify) - trait Product[T[f[_]] <: NonEmptyAlternative[f], F[_]] + @nowarn("msg=unused implicit parameter") + trait Product[T[f[_]] <: NonEmptyAlternative[f], F[_]: ProductInstancesOf[T]] extends NonEmptyAlternative[F], DerivedApplicative.Product[T, F], DerivedSemigroupK.Product[T, F] diff --git a/core/src/main/scala-3/cats/derived/DerivedSemilattice.scala b/core/src/main/scala-3/cats/derived/DerivedSemilattice.scala index 39dc1356..bdd0e54e 100644 --- a/core/src/main/scala-3/cats/derived/DerivedSemilattice.scala +++ b/core/src/main/scala-3/cats/derived/DerivedSemilattice.scala @@ -22,7 +22,10 @@ object DerivedSemilattice: given product[A](using inst: => ProductInstances[Semilattice |: Derived, A]): DerivedSemilattice[A] = Strict.product(using inst.unify) - trait Product[F[x] <: Semilattice[x], A] extends DerivedCommutativeSemigroup.Product[F, A], Semilattice[A] + @nowarn("msg=unused implicit parameter") + trait Product[F[x] <: Semilattice[x], A: ProductInstancesOf[F]] + extends DerivedCommutativeSemigroup.Product[F, A], + Semilattice[A] object Strict: given product[A: ProductInstancesOf[Semilattice]]: DerivedSemilattice[A] =