diff --git a/core/src/main/scala/cats/syntax/applicative.scala b/core/src/main/scala/cats/syntax/applicative.scala index 78a202153e..2c795d0026 100644 --- a/core/src/main/scala/cats/syntax/applicative.scala +++ b/core/src/main/scala/cats/syntax/applicative.scala @@ -22,13 +22,15 @@ package cats package syntax -trait ApplicativeSyntax { +trait ApplicativeSyntax extends ApplicativeSyntaxLowPriority { implicit final def catsSyntaxApplicativeId[A](a: A): ApplicativeIdOps[A] = new ApplicativeIdOps[A](a) implicit final def catsSyntaxApplicativeByName[F[_], A](fa: => F[A]): ApplicativeByNameOps[F, A] = new ApplicativeByNameOps[F, A](() => fa) - @deprecated("Use by-name version", "2.8.0") - final def catsSyntaxApplicative[F[_], A](fa: F[A]): ApplicativeOps[F, A] = +} + +trait ApplicativeSyntaxLowPriority { + implicit final def catsSyntaxApplicative[F[_], A](fa: F[A]): ApplicativeOps[F, A] = new ApplicativeOps[F, A](fa) } @@ -36,15 +38,13 @@ final class ApplicativeIdOps[A](private val a: A) extends AnyVal { def pure[F[_]](implicit F: Applicative[F]): F[A] = F.pure(a) } -@deprecated("Use by-name version", "2.8.0") final class ApplicativeOps[F[_], A](private val fa: F[A]) extends AnyVal { def replicateA(n: Int)(implicit F: Applicative[F]): F[List[A]] = F.replicateA(n, fa) - def unlessA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.unlessA(cond)(fa) - def whenA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.whenA(cond)(fa) + private[syntax] def unlessA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.unlessA(cond)(fa) + private[syntax] def whenA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.whenA(cond)(fa) } final class ApplicativeByNameOps[F[_], A](private val fa: () => F[A]) extends AnyVal { - def replicateA(n: Int)(implicit F: Applicative[F]): F[List[A]] = F.replicateA(n, fa()) def unlessA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.unlessA(cond)(fa()) def whenA(cond: Boolean)(implicit F: Applicative[F]): F[Unit] = F.whenA(cond)(fa()) }