From 80d137b7de8c84689d72efaf3416cc354d731efc Mon Sep 17 00:00:00 2001 From: Martijn Date: Thu, 5 Nov 2026 23:13:22 +0100 Subject: [PATCH] Import cats.syntax.all instead of cats.implicits in the kernel Async and GenSpawnInstances imported cats.implicits._, whose initializer builds cats' standard instances. On Scala Native that makes BigDecimal and BigInt reachable from any program that uses Async's default async, which links java.math and imports strtod, strtof, log and log10. The syntax is all these files need; instances come from implicit scope. --- kernel/shared/src/main/scala/cats/effect/kernel/Async.scala | 2 +- .../cats/effect/kernel/instances/GenSpawnInstances.scala | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/shared/src/main/scala/cats/effect/kernel/Async.scala b/kernel/shared/src/main/scala/cats/effect/kernel/Async.scala index df2a973518..d4cb065ac9 100644 --- a/kernel/shared/src/main/scala/cats/effect/kernel/Async.scala +++ b/kernel/shared/src/main/scala/cats/effect/kernel/Async.scala @@ -19,7 +19,7 @@ package cats.effect.kernel import cats.{~>, Monoid, Semigroup} import cats.arrow.FunctionK import cats.data.{EitherT, Ior, IorT, Kleisli, OptionT, WriterT} -import cats.implicits._ +import cats.syntax.all._ import org.typelevel.scalaccompat.annotation.unused diff --git a/kernel/shared/src/main/scala/cats/effect/kernel/instances/GenSpawnInstances.scala b/kernel/shared/src/main/scala/cats/effect/kernel/instances/GenSpawnInstances.scala index a19bf9e65b..52bf47cdbf 100644 --- a/kernel/shared/src/main/scala/cats/effect/kernel/instances/GenSpawnInstances.scala +++ b/kernel/shared/src/main/scala/cats/effect/kernel/instances/GenSpawnInstances.scala @@ -19,7 +19,7 @@ package cats.effect.kernel.instances import cats.{~>, Align, Applicative, CommutativeApplicative, Functor, Id, Monad, Parallel} import cats.data.Ior import cats.effect.kernel.{GenSpawn, ParallelF} -import cats.implicits._ +import cats.syntax.all._ trait GenSpawnInstances { @@ -79,7 +79,7 @@ trait GenSpawnInstances { f: Ior[A, B] => C): ParallelF[F, C] = ParallelF( (ParallelF.value(fa).attempt, ParallelF.value(fb).attempt) - .parMapN((ea, eb) => catsStdInstancesForEither.alignWith(ea, eb)(f)) + .parMapN((ea, eb) => Align[Either[E, *]].alignWith(ea, eb)(f)) .flatMap(F.fromEither) )