typelevel/cats (org.typelevel:cats-core)
### [`v2.12.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.12.0)
[Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.11.0...v2.12.0)
Cats v2.12.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.5.
#### What's Changed
##### Features
- Add `flatMapOrKeep` to `Monad` by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4602](https://redirect.github.com/typelevel/cats/pull/4602)
##### Behind-the-Scenes
- Remove special ExecutionContextExecutor by [@kapunga](https://redirect.github.com/kapunga) in [https://github.com/typelevel/cats/pull/4601](https://redirect.github.com/typelevel/cats/pull/4601)
- Bump base version to 2.12 by [@mpilquist](https://redirect.github.com/mpilquist) in [https://github.com/typelevel/cats/pull/4606](https://redirect.github.com/typelevel/cats/pull/4606)
##### Updates
- Update nscplugin, sbt-scala-native to 0.5.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4585](https://redirect.github.com/typelevel/cats/pull/4585)
- Update discipline-munit to 2.0.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4605](https://redirect.github.com/typelevel/cats/pull/4605)
#### New Contributors
- [@kapunga](https://redirect.github.com/kapunga) made their first contribution in [https://github.com/typelevel/cats/pull/4601](https://redirect.github.com/typelevel/cats/pull/4601)
**Full Changelog**: https://github.com/typelevel/cats/compare/v2.11.0...v2.12.0
### [`v2.11.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.11.0)
[Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.10.0...v2.11.0)
Cats v2.11.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.4.
#### What's Changed
##### Features
- Add `OptionT#unlessM` by [@m50d](https://redirect.github.com/m50d) in [https://github.com/typelevel/cats/pull/4519](https://redirect.github.com/typelevel/cats/pull/4519)
- Add `mapOrKeep` to Functor by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4582](https://redirect.github.com/typelevel/cats/pull/4582)
- Expose FunctionK.liftFunction as a part of the Scala 3 API by [@pomadchin](https://redirect.github.com/pomadchin) in [https://github.com/typelevel/cats/pull/4600](https://redirect.github.com/typelevel/cats/pull/4600)
- FunctionKLift cross compiled liftFunction suite by [@pomadchin](https://redirect.github.com/pomadchin) in [https://github.com/typelevel/cats/pull/4603](https://redirect.github.com/typelevel/cats/pull/4603)
##### Optimizations
- Replaces other `Applicative.pure(())` with `.unit` by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4558](https://redirect.github.com/typelevel/cats/pull/4558)
- Use `Applicative#unit` in `Foldable#traverse_` by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4557](https://redirect.github.com/typelevel/cats/pull/4557)
- Optimize traverse by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4498](https://redirect.github.com/typelevel/cats/pull/4498)
##### Fixes
- Fix EitherT Bifunctor priority, add Bifoldable instance by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4576](https://redirect.github.com/typelevel/cats/pull/4576)
- fix ambiguous ContravariantShow\[SortedSet\[A]] (& SortedMap) by [@chwthewke](https://redirect.github.com/chwthewke) in [https://github.com/typelevel/cats/pull/4575](https://redirect.github.com/typelevel/cats/pull/4575)
- Reduce visibility of value member in the `NonEmptyMap` syntax by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4559](https://redirect.github.com/typelevel/cats/pull/4559)
##### Documentation
- Fix link to Fetch by [@mainali123](https://redirect.github.com/mainali123) in [https://github.com/typelevel/cats/pull/4522](https://redirect.github.com/typelevel/cats/pull/4522)
- update book's link to second edition by [@naferx](https://redirect.github.com/naferx) in [https://github.com/typelevel/cats/pull/4524](https://redirect.github.com/typelevel/cats/pull/4524)
- fix wording at end of Semigroup doc by [@vreuter](https://redirect.github.com/vreuter) in [https://github.com/typelevel/cats/pull/4551](https://redirect.github.com/typelevel/cats/pull/4551)
- Fix `choice` alias render in docs by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4580](https://redirect.github.com/typelevel/cats/pull/4580)
- fix typo by [@Ghurtchu](https://redirect.github.com/Ghurtchu) in [https://github.com/typelevel/cats/pull/4583](https://redirect.github.com/typelevel/cats/pull/4583)
- Use syntax in Functor's doc examples by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4599](https://redirect.github.com/typelevel/cats/pull/4599)
##### Behind-the-scenes
- fix `MonadOps.scala` and `FunctionKMacros.scala` dir by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4548](https://redirect.github.com/typelevel/cats/pull/4548)
- Bump base version to 2.11 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4496](https://redirect.github.com/typelevel/cats/pull/4496)
- add explicit type by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4508](https://redirect.github.com/typelevel/cats/pull/4508)
- fix warning in `build.sbt` by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4518](https://redirect.github.com/typelevel/cats/pull/4518)
- enforce new wildcard syntax by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4544](https://redirect.github.com/typelevel/cats/pull/4544)
- Update copyright date by [@geny200](https://redirect.github.com/geny200) in [https://github.com/typelevel/cats/pull/4593](https://redirect.github.com/typelevel/cats/pull/4593)
##### Updates
- Update sbt-typelevel, sbt-typelevel-site to 0.5.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4497](https://redirect.github.com/typelevel/cats/pull/4497)
- Update sbt to 1.9.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4500](https://redirect.github.com/typelevel/cats/pull/4500)
- Update scalafmt-core to 3.7.13 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4502](https://redirect.github.com/typelevel/cats/pull/4502)
- Update scalafmt-core to 3.7.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4503](https://redirect.github.com/typelevel/cats/pull/4503)
- Update sbt-jmh to 0.4.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4506](https://redirect.github.com/typelevel/cats/pull/4506)
- Update scala3-library, ... to 3.3.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4507](https://redirect.github.com/typelevel/cats/pull/4507)
- Update nscplugin, sbt-scala-native, ... to 0.4.15 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4505](https://redirect.github.com/typelevel/cats/pull/4505)
- Update sbt-typelevel, sbt-typelevel-site to 0.5.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4509](https://redirect.github.com/typelevel/cats/pull/4509)
- Update scala-library, scala-reflect to 2.13.12 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4510](https://redirect.github.com/typelevel/cats/pull/4510)
- Update sbt-typelevel, sbt-typelevel-site to 0.5.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4511](https://redirect.github.com/typelevel/cats/pull/4511)
- Update sbt to 1.9.5 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4512](https://redirect.github.com/typelevel/cats/pull/4512)
- Update munit to 1.0.0-M9 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4513](https://redirect.github.com/typelevel/cats/pull/4513)
- Update sbt to 1.9.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4515](https://redirect.github.com/typelevel/cats/pull/4515)
- Update sbt-typelevel, sbt-typelevel-site to 0.5.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4517](https://redirect.github.com/typelevel/cats/pull/4517)
- Update munit to 1.0.0-M10 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4516](https://redirect.github.com/typelevel/cats/pull/4516)
- Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4520](https://redirect.github.com/typelevel/cats/pull/4520)
- Update sbt-typelevel, sbt-typelevel-site to 0.5.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4523](https://redirect.github.com/typelevel/cats/pull/4523)
- Update flatMapF in nomenclature.md by [@pera](https://redirect.github.com/pera) in [https://github.com/typelevel/cats/pull/4525](https://redirect.github.com/typelevel/cats/pull/4525)
- Update nscplugin, sbt-scala-native, ... to 0.4.16 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4526](https://redirect.github.com/typelevel/cats/pull/4526)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4527](https://redirect.github.com/typelevel/cats/pull/4527)
- Update sbt to 1.9.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4529](https://redirect.github.com/typelevel/cats/pull/4529)
- Update scalafmt-core to 3.7.15 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4530](https://redirect.github.com/typelevel/cats/pull/4530)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4532](https://redirect.github.com/typelevel/cats/pull/4532)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4535](https://redirect.github.com/typelevel/cats/pull/4535)
- Update scalafmt-core to 3.7.17 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4536](https://redirect.github.com/typelevel/cats/pull/4536)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4538](https://redirect.github.com/typelevel/cats/pull/4538)
- Update sbt-jmh to 0.4.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4539](https://redirect.github.com/typelevel/cats/pull/4539)
- Update sbt to 1.9.8 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4541](https://redirect.github.com/typelevel/cats/pull/4541)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4542](https://redirect.github.com/typelevel/cats/pull/4542)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.5 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4546](https://redirect.github.com/typelevel/cats/pull/4546)
- Update nscplugin, sbt-scala-native, ... to 0.4.17 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4550](https://redirect.github.com/typelevel/cats/pull/4550)
- Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4549](https://redirect.github.com/typelevel/cats/pull/4549)
- Update munit to 1.0.0-M11 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4556](https://redirect.github.com/typelevel/cats/pull/4556)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4560](https://redirect.github.com/typelevel/cats/pull/4560)
- Update scalafmt-core to 3.8.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4563](https://redirect.github.com/typelevel/cats/pull/4563)
- Update sbt to 1.9.9 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4565](https://redirect.github.com/typelevel/cats/pull/4565)
- Update sbt-typelevel, sbt-typelevel-site to 0.6.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4566](https://redirect.github.com/typelevel/cats/pull/4566)
- Update scala-library, scala-reflect to 2.13.13 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4568](https://redirect.github.com/typelevel/cats/pull/4568)
- Update scala-library, scala-reflect to 2.12.19 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4567](https://redirect.github.com/typelevel/cats/pull/4567)
- Update scala3-library, ... to 3.3.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4571](https://redirect.github.com/typelevel/cats/pull/4571)
- Update sbt-buildinfo to 0.12.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4577](https://redirect.github.com/typelevel/cats/pull/4577)
- Update scalafmt-core to 3.8.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4578](https://redirect.github.com/typelevel/cats/pull/4578)
- Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4581](https://redirect.github.com/typelevel/cats/pull/4581)
- Update discipline-core to 1.6.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4588](https://redirect.github.com/typelevel/cats/pull/4588)
- Update scalacheck to 1.17.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4586](https://redirect.github.com/typelevel/cats/pull/4586)
- Update sbt-typelevel, sbt-typelevel-site to 0.7.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4591](https://redirect.github.com/typelevel/cats/pull/4591)
- Update munit to 1.0.0-RC1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4592](https://redirect.github.com/typelevel/cats/pull/4592)
- Update scala-library, scala-reflect to 2.13.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4594](https://redirect.github.com/typelevel/cats/pull/4594)
- Update sbt to 1.10.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4596](https://redirect.github.com/typelevel/cats/pull/4596)
- Update sbt-typelevel, sbt-typelevel-site to 0.7.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4597](https://redirect.github.com/typelevel/cats/pull/4597)
- Update munit to 1.0.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4604](https://redirect.github.com/typelevel/cats/pull/4604)
#### New Contributors
- [@m50d](https://redirect.github.com/m50d) made their first contribution in [https://github.com/typelevel/cats/pull/4519](https://redirect.github.com/typelevel/cats/pull/4519)
- [@mainali123](https://redirect.github.com/mainali123) made their first contribution in [https://github.com/typelevel/cats/pull/4522](https://redirect.github.com/typelevel/cats/pull/4522)
- [@naferx](https://redirect.github.com/naferx) made their first contribution in [https://github.com/typelevel/cats/pull/4524](https://redirect.github.com/typelevel/cats/pull/4524)
- [@vreuter](https://redirect.github.com/vreuter) made their first contribution in [https://github.com/typelevel/cats/pull/4551](https://redirect.github.com/typelevel/cats/pull/4551)
- [@chwthewke](https://redirect.github.com/chwthewke) made their first contribution in [https://github.com/typelevel/cats/pull/4575](https://redirect.github.com/typelevel/cats/pull/4575)
- [@Ghurtchu](https://redirect.github.com/Ghurtchu) made their first contribution in [https://github.com/typelevel/cats/pull/4583](https://redirect.github.com/typelevel/cats/pull/4583)
- [@geny200](https://redirect.github.com/geny200) made their first contribution in [https://github.com/typelevel/cats/pull/4593](https://redirect.github.com/typelevel/cats/pull/4593)
- [@pomadchin](https://redirect.github.com/pomadchin) made their first contribution in [https://github.com/typelevel/cats/pull/4600](https://redirect.github.com/typelevel/cats/pull/4600)
**Full Changelog**: https://github.com/typelevel/cats/compare/v2.10.0...v2.11.0
### [`v2.10.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.10.0)
[Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.9.0...v2.10.0)
Cats v2.10.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.4.
This release includes [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477) which fixes the encoding of `Apply` (and `Semigroupal`) syntax to avoid allocating an intermediate "`Ops`" wrapper class. This affected commonly-used operators such as `*>`. **Unfortunately libraries will need to re-compile and re-publish against Cats v2.10.0 to use the new allocation-free syntax.**
Thanks to all the contributors to this release! There are many accumulated changes.
#### What's Changed
##### Features
- Add `OptionT` combinators for effectful Boolean by [@ivan-klass](https://redirect.github.com/ivan-klass) in [https://github.com/typelevel/cats/pull/4390](https://redirect.github.com/typelevel/cats/pull/4390)
- Add `Bifunctor#leftLiftTo` by [@eugkhp](https://redirect.github.com/eugkhp) in [https://github.com/typelevel/cats/pull/4336](https://redirect.github.com/typelevel/cats/pull/4336)
- Add `Kleisli.localK` `FunctionK` helper by [@ivan-klass](https://redirect.github.com/ivan-klass) in [https://github.com/typelevel/cats/pull/4406](https://redirect.github.com/typelevel/cats/pull/4406)
- add `zip` for `NonEmptySeq` by [@CristinaHG](https://redirect.github.com/CristinaHG) in [https://github.com/typelevel/cats/pull/4431](https://redirect.github.com/typelevel/cats/pull/4431)
- Add `Functor#composeBifunctor` by [@bpholt](https://redirect.github.com/bpholt), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4434](https://redirect.github.com/typelevel/cats/pull/4434)
- Add `Validated.unit` by [@VladKopanev](https://redirect.github.com/VladKopanev) in [https://github.com/typelevel/cats/pull/4420](https://redirect.github.com/typelevel/cats/pull/4420)
- Add `raiseWhen`/`raiseUnless` convenience methods to `EitherObjectOps` by [@Daenyth](https://redirect.github.com/Daenyth) in [https://github.com/typelevel/cats/pull/4436](https://redirect.github.com/typelevel/cats/pull/4436)
- `OneAnd`: add `PartialOrder` and `Order` instances by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4460](https://redirect.github.com/typelevel/cats/pull/4460)
- Add `Defer` instances for `Eq`, `Hash`, `Order`, `Show`, and variants by [@morgen-peschke](https://redirect.github.com/morgen-peschke) in [https://github.com/typelevel/cats/pull/4414](https://redirect.github.com/typelevel/cats/pull/4414)
- Fix ambiguous `Const` instances and add missing instances by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4458](https://redirect.github.com/typelevel/cats/pull/4458)
##### Optimizations
- Avoid allocating an `Option` in `NonEmptyList#last` by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4417](https://redirect.github.com/typelevel/cats/pull/4417)
- Improve `foldRight` for `Seq` instance by [@rudolmi](https://redirect.github.com/rudolmi) in [https://github.com/typelevel/cats/pull/4440](https://redirect.github.com/typelevel/cats/pull/4440)
##### Fixes
- Move `catsTraverseForSeq` to lower-priority implicit scope by [@UlisesTorrella](https://redirect.github.com/UlisesTorrella) in [https://github.com/typelevel/cats/pull/4373](https://redirect.github.com/typelevel/cats/pull/4373)
- Making `Map.unorderedTraverse` stack safe by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4463](https://redirect.github.com/typelevel/cats/pull/4463)
- Fix unnecessary syntax allocation by [@mox692](https://redirect.github.com/mox692) in [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477)
##### Documentation
- Nomenclature for the `SemigroupK` hierarchy by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4329](https://redirect.github.com/typelevel/cats/pull/4329)
- Fix readme by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4368](https://redirect.github.com/typelevel/cats/pull/4368)
- Fix the nested unordered list HTML view of docs/typeclasses/alternative.md by [@ShapelessCat](https://redirect.github.com/ShapelessCat) in [https://github.com/typelevel/cats/pull/4371](https://redirect.github.com/typelevel/cats/pull/4371)
- Fix typo by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4381](https://redirect.github.com/typelevel/cats/pull/4381)
- Add missing syntax highlightning by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4382](https://redirect.github.com/typelevel/cats/pull/4382)
- Add a link about fs2-throttler by [@kovstas](https://redirect.github.com/kovstas) in [https://github.com/typelevel/cats/pull/4359](https://redirect.github.com/typelevel/cats/pull/4359)
- Publish alleycats docs on website by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4393](https://redirect.github.com/typelevel/cats/pull/4393)
- `cats.implicits._` -> `cats.syntax.all._` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4394](https://redirect.github.com/typelevel/cats/pull/4394)
- Update no script links in readme by [@RawToast](https://redirect.github.com/RawToast) in [https://github.com/typelevel/cats/pull/4397](https://redirect.github.com/typelevel/cats/pull/4397)
- Update CONTRIBUTING.md microsite information by [@fabianhjr](https://redirect.github.com/fabianhjr) in [https://github.com/typelevel/cats/pull/4399](https://redirect.github.com/typelevel/cats/pull/4399)
- Improve `Chain` Documentation by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4386](https://redirect.github.com/typelevel/cats/pull/4386)
- Add API documentation links by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4401](https://redirect.github.com/typelevel/cats/pull/4401)
- `f >>> g` in symbols table by [@jose-puente](https://redirect.github.com/jose-puente) in [https://github.com/typelevel/cats/pull/4411](https://redirect.github.com/typelevel/cats/pull/4411)
- Fix outdated edit link in algebra docs by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4418](https://redirect.github.com/typelevel/cats/pull/4418)
- Update version in readme by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4422](https://redirect.github.com/typelevel/cats/pull/4422)
- Fix typo in `Ior` docs by [@fighur](https://redirect.github.com/fighur) in [https://github.com/typelevel/cats/pull/4423](https://redirect.github.com/typelevel/cats/pull/4423)
- Update Ring-like table in Algebra for Semifield added in [#3979](https://redirect.github.com/typelevel/cats/issues/3979) by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4426](https://redirect.github.com/typelevel/cats/pull/4426)
- Add `foldr` note to `Foldable` doc by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4425](https://redirect.github.com/typelevel/cats/pull/4425)
- Bump versions in law testing doc by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4424](https://redirect.github.com/typelevel/cats/pull/4424)
- ExhaustiveCheck is a list, not a stream by [@rossabaker](https://redirect.github.com/rossabaker) in [https://github.com/typelevel/cats/pull/4442](https://redirect.github.com/typelevel/cats/pull/4442)
- Fix `traverseWithIndex` => `traverseWithIndexM` by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4443](https://redirect.github.com/typelevel/cats/pull/4443)
- Fix typo in core's package object docs by [@fatalem0](https://redirect.github.com/fatalem0) in [https://github.com/typelevel/cats/pull/4446](https://redirect.github.com/typelevel/cats/pull/4446)
- Fix `jump_start_guide.md` typo by [@BokChoyWarrior](https://redirect.github.com/BokChoyWarrior) in [https://github.com/typelevel/cats/pull/4465](https://redirect.github.com/typelevel/cats/pull/4465)
- Remove `Either` documentation page by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4400](https://redirect.github.com/typelevel/cats/pull/4400)
- Add doctest for `IdT` by [@bulatkhabib](https://redirect.github.com/bulatkhabib) in [https://github.com/typelevel/cats/pull/4445](https://redirect.github.com/typelevel/cats/pull/4445)
- Fix typo by [@bwignall](https://redirect.github.com/bwignall) in [https://github.com/typelevel/cats/pull/4482](https://redirect.github.com/typelevel/cats/pull/4482)
##### Adopters
- Add IPONWEB as an adopter by [@bio-aeon](https://redirect.github.com/bio-aeon) in [https://github.com/typelevel/cats/pull/4384](https://redirect.github.com/typelevel/cats/pull/4384)
- Update ADOPTERS.md by [@ehsun7b](https://redirect.github.com/ehsun7b) in [https://github.com/typelevel/cats/pull/4435](https://redirect.github.com/typelevel/cats/pull/4435)
- Add PITS Globale Datenrettungsdienste as an adopter by [@arnoldberlin](https://redirect.github.com/arnoldberlin) in [https://github.com/typelevel/cats/pull/4472](https://redirect.github.com/typelevel/cats/pull/4472)
##### Behind-the-scenes
- Bump base version to 2.10 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4341](https://redirect.github.com/typelevel/cats/pull/4341)
- Remove plugins we get via sbt-typelevel by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4344](https://redirect.github.com/typelevel/cats/pull/4344)
- Clean up benchmarks' dependencies by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4355](https://redirect.github.com/typelevel/cats/pull/4355)
- Fix Native CI by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4363](https://redirect.github.com/typelevel/cats/pull/4363)
- remove unused version number by [@kailuowang](https://redirect.github.com/kailuowang) in [https://github.com/typelevel/cats/pull/4358](https://redirect.github.com/typelevel/cats/pull/4358)
- Move `NonEmptyReducible` into its own file by [@fabianhjr](https://redirect.github.com/fabianhjr) in [https://github.com/typelevel/cats/pull/4398](https://redirect.github.com/typelevel/cats/pull/4398)
- Delete PR template by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4459](https://redirect.github.com/typelevel/cats/pull/4459)
- Replaced `traverse` benchmarks with something more representative by [@djspiewak](https://redirect.github.com/djspiewak) in [https://github.com/typelevel/cats/pull/4403](https://redirect.github.com/typelevel/cats/pull/4403)
- Update to sbt-typelevel 0.5.0 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4478](https://redirect.github.com/typelevel/cats/pull/4478)
##### Updates
- Update scala3-library, ... to 3.3.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4448](https://redirect.github.com/typelevel/cats/pull/4448)
- Update nscplugin, sbt-scala-native, ... to 0.4.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4454](https://redirect.github.com/typelevel/cats/pull/4454)
- Update scala-library, scala-reflect to 2.12.18 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4455](https://redirect.github.com/typelevel/cats/pull/4455)
- Update scala-library, scala-reflect to 2.13.11 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4456](https://redirect.github.com/typelevel/cats/pull/4456)
- Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4464](https://redirect.github.com/typelevel/cats/pull/4464)
#### New Contributors
- [@ShapelessCat](https://redirect.github.com/ShapelessCat) made their first contribution in [https://github.com/typelevel/cats/pull/4371](https://redirect.github.com/typelevel/cats/pull/4371)
- [@UlisesTorrella](https://redirect.github.com/UlisesTorrella) made their first contribution in [https://github.com/typelevel/cats/pull/4373](https://redirect.github.com/typelevel/cats/pull/4373)
- [@Masynchin](https://redirect.github.com/Masynchin) made their first contribution in [https://github.com/typelevel/cats/pull/4381](https://redirect.github.com/typelevel/cats/pull/4381)
- [@bio-aeon](https://redirect.github.com/bio-aeon) made their first contribution in [https://github.com/typelevel/cats/pull/4384](https://redirect.github.com/typelevel/cats/pull/4384)
- [@kovstas](https://redirect.github.com/kovstas) made their first contribution in [https://github.com/typelevel/cats/pull/4359](https://redirect.github.com/typelevel/cats/pull/4359)
- [@fabianhjr](https://redirect.github.com/fabianhjr) made their first contribution in [https://github.com/typelevel/cats/pull/4398](https://redirect.github.com/typelevel/cats/pull/4398)
- [@reardonj](https://redirect.github.com/reardonj) made their first contribution in [https://github.com/typelevel/cats/pull/4386](https://redirect.github.com/typelevel/cats/pull/4386)
- [@eugkhp](https://redirect.github.com/eugkhp) made their first contribution in [https://github.com/typelevel/cats/pull/4336](https://redirect.github.com/typelevel/cats/pull/4336)
- [@jose-puente](https://redirect.github.com/jose-puente) made their first contribution in [https://github.com/typelevel/cats/pull/4411](https://redirect.github.com/typelevel/cats/pull/4411)
- [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) made their first contribution in [https://github.com/typelevel/cats/pull/4418](https://redirect.github.com/typelevel/cats/pull/4418)
- [@fighur](https://redirect.github.com/fighur) made their first contribution in [https://github.com/typelevel/cats/pull/4423](https://redirect.github.com/typelevel/cats/pull/4423)
- [@ehsun7b](https://redirect.github.com/ehsun7b) made their first contribution in [https://github.com/typelevel/cats/pull/4435](https://redirect.github.com/typelevel/cats/pull/4435)
- [@CristinaHG](https://redirect.github.com/CristinaHG) made their first contribution in [https://github.com/typelevel/cats/pull/4431](https://redirect.github.com/typelevel/cats/pull/4431)
- [@VladKopanev](https://redirect.github.com/VladKopanev) made their first contribution in [https://github.com/typelevel/cats/pull/4420](https://redirect.github.com/typelevel/cats/pull/4420)
- [@rudolmi](https://redirect.github.com/rudolmi) made their first contribution in [https://github.com/typelevel/cats/pull/4440](https://redirect.github.com/typelevel/cats/pull/4440)
- [@fatalem0](https://redirect.github.com/fatalem0) made their first contribution in [https://github.com/typelevel/cats/pull/4446](https://redirect.github.com/typelevel/cats/pull/4446)
- [@BokChoyWarrior](https://redirect.github.com/BokChoyWarrior) made their first contribution in [https://github.com/typelevel/cats/pull/4465](https://redirect.github.com/typelevel/cats/pull/4465)
- [@arnoldberlin](https://redirect.github.com/arnoldberlin) made their first contribution in [https://github.com/typelevel/cats/pull/4472](https://redirect.github.com/typelevel/cats/pull/4472)
- [@bulatkhabib](https://redirect.github.com/bulatkhabib) made their first contribution in [https://github.com/typelevel/cats/pull/4445](https://redirect.github.com/typelevel/cats/pull/4445)
- [@mox692](https://redirect.github.com/mox692) made their first contribution in [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477)
**Full Changelog**: https://github.com/typelevel/cats/compare/v2.9.0...v2.10.0
### [`v2.9.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.9.0)
[Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.8.0...v2.9.0)
Cats v2.9.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.2+ with Scala.js 1.8+ and Scala Native 0.4.
#### What's Changed
##### Features
- Added `updated` to `Traverse` by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4248](https://redirect.github.com/typelevel/cats/pull/4248)
- Added `zipWithLongIndex`, `mapWithLongIndex` and `traverseWithLongIndexM` by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4247](https://redirect.github.com/typelevel/cats/pull/4247)
- Add `collectFirst` to the `NonEmptyCollection` interface by [@DavidGregory084](https://redirect.github.com/DavidGregory084) in [https://github.com/typelevel/cats/pull/4275](https://redirect.github.com/typelevel/cats/pull/4275)
- Added discipline tests for the new `Traverse` laws by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4283](https://redirect.github.com/typelevel/cats/pull/4283)
- Add `traverseCollect` to `TraverseFilter` typeclass by [@emilhotkowski](https://redirect.github.com/emilhotkowski) in [https://github.com/typelevel/cats/pull/4277](https://redirect.github.com/typelevel/cats/pull/4277)
- Add `NonEmptyList#prependAll` by [@saeltz](https://redirect.github.com/saeltz) in [https://github.com/typelevel/cats/pull/4267](https://redirect.github.com/typelevel/cats/pull/4267)
- Add `EitherT#biSemiflatTap` which combines `leftSemiflatTap` and `semiflatTap` by [@exp0nge](https://redirect.github.com/exp0nge) in [https://github.com/typelevel/cats/pull/4293](https://redirect.github.com/typelevel/cats/pull/4293)
- Optimize `Alternative` (part 3): add `prependK`/`appendK` specializations for Cats NE wrappers by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4055](https://redirect.github.com/typelevel/cats/pull/4055)
- Added `parFlatMapN` by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4243](https://redirect.github.com/typelevel/cats/pull/4243)
- Added `Align` instances for `Id` and `Kleisli` by [@atnoya](https://redirect.github.com/atnoya) in [https://github.com/typelevel/cats/pull/4287](https://redirect.github.com/typelevel/cats/pull/4287)
- Add `ApplicativeError#voidError` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4324](https://redirect.github.com/typelevel/cats/pull/4324)
##### Optimizations
- Change the ordering of invocations in `Defer#fix` by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4252](https://redirect.github.com/typelevel/cats/pull/4252)
- Optimise boilerplate generators, use instance constructors by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/3871](https://redirect.github.com/typelevel/cats/pull/3871)
- Avoid using `NonFatal.unapply` by [@jhnsmth](https://redirect.github.com/jhnsmth) in [https://github.com/typelevel/cats/pull/4282](https://redirect.github.com/typelevel/cats/pull/4282)
- Use SAM syntax for typeclass instances where possible by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4279](https://redirect.github.com/typelevel/cats/pull/4279)
- Singleton monoid instances by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4314](https://redirect.github.com/typelevel/cats/pull/4314)
- Avoid allocations for `Monoid` instances where possible by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4309](https://redirect.github.com/typelevel/cats/pull/4309)
- Make string building a bit more efficient for `NonEmptySeq` by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4326](https://redirect.github.com/typelevel/cats/pull/4326)
##### Fixes
- Don't require `Order` for the value on `Cogen` for `SortedMap` and `NonEmptyMap` by [@cquiroz](https://redirect.github.com/cquiroz) in [https://github.com/typelevel/cats/pull/4296](https://redirect.github.com/typelevel/cats/pull/4296)
- Make `cats.compat` a package object for `for2_13Use3` compatibility by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4315](https://redirect.github.com/typelevel/cats/pull/4315)
- Fix ambiguous `contains_` syntax by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4320](https://redirect.github.com/typelevel/cats/pull/4320)
##### Deprecations
- Deprecate `HashLaws#sameAsUniversalHash` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4319](https://redirect.github.com/typelevel/cats/pull/4319)
##### Documentation
- Remove LEGO from adopters list by [@hejfelix](https://redirect.github.com/hejfelix) in [https://github.com/typelevel/cats/pull/4242](https://redirect.github.com/typelevel/cats/pull/4242)
- Fix Free Monad example by [@youta32449999](https://redirect.github.com/youta32449999) in [https://github.com/typelevel/cats/pull/4253](https://redirect.github.com/typelevel/cats/pull/4253)
- Mention `asRight` and `asLeft` for constructing Either values by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4257](https://redirect.github.com/typelevel/cats/pull/4257)
- Fix comment in Free Monad example by [@youta32449999](https://redirect.github.com/youta32449999) in [https://github.com/typelevel/cats/pull/4259](https://redirect.github.com/typelevel/cats/pull/4259)
- Add proof of inconsistency for a `Validated` Monad by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4255](https://redirect.github.com/typelevel/cats/pull/4255)
- Mention `tupled` syntax, a Cats workhorse that deserves to be more well known by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4269](https://redirect.github.com/typelevel/cats/pull/4269)
- Add missing `scala` modifier to code block by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4274](https://redirect.github.com/typelevel/cats/pull/4274)
- Build docs on 2.13 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4238](https://redirect.github.com/typelevel/cats/pull/4238)
- Fix list formatting in docs / site by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4290](https://redirect.github.com/typelevel/cats/pull/4290)
- Move the adopters' companies list to a separate file/page by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4291](https://redirect.github.com/typelevel/cats/pull/4291)
- Keep the cats version up to date on the website by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4294](https://redirect.github.com/typelevel/cats/pull/4294)
- Include laws in published API docs by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4318](https://redirect.github.com/typelevel/cats/pull/4318)
- Fix markdown syntax for link to `Applicative` in `OptionT` by [@yoshinorin](https://redirect.github.com/yoshinorin) in [https://github.com/typelevel/cats/pull/4321](https://redirect.github.com/typelevel/cats/pull/4321)
- Add more DocTests for `OptionT` by [@timo-schmid](https://redirect.github.com/timo-schmid) in [https://github.com/typelevel/cats/pull/4311](https://redirect.github.com/typelevel/cats/pull/4311)
##### Behind-the-scenes
- Ignore updates to cats-core by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4241](https://redirect.github.com/typelevel/cats/pull/4241)
- Bump base version to 2.9 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4239](https://redirect.github.com/typelevel/cats/pull/4239)
- Refactored `Chain` and `CollectiveMonoid` benchmarks by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4264](https://redirect.github.com/typelevel/cats/pull/4264)
- Fix obvious and straightforward warnings by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4323](https://redirect.github.com/typelevel/cats/pull/4323)
- Add commits to `.git-blame-ignore-revs` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4334](https://redirect.github.com/typelevel/cats/pull/4334)
- Add stack-safety test for `ContT#map` by [@eigenvariable](https://redirect.github.com/eigenvariable) in [https://github.com/typelevel/cats/pull/4335](https://redirect.github.com/typelevel/cats/pull/4335)
- Add release notes config by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4330](https://redirect.github.com/typelevel/cats/pull/4330)
##### Updates
- Update sbt-scalajs, scalajs-compiler, ... to 1.10.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4254](https://redirect.github.com/typelevel/cats/pull/4254)
- Update nscplugin, sbt-scala-native, ... to 0.4.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4289](https://redirect.github.com/typelevel/cats/pull/4289)
- Update scalacheck to 1.17.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4297](https://redirect.github.com/typelevel/cats/pull/4297)
- Update scala3-library, ... to 3.2.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4337](https://redirect.github.com/typelevel/cats/pull/4337)
#### New Contributors
- [@hejfelix](https://redirect.github.com/hejfelix) made their first contribution in [https://github.com/typelevel/cats/pull/4242](https://redirect.github.com/typelevel/cats/pull/4242)
- [@youta32449999](https://redirect.github.com/youta32449999) made their first contribution in [https://github.com/typelevel/cats/pull/4253](https://redirect.github.com/typelevel/cats/pull/4253)
- [@nikololiahim](https://redirect.github.com/nikololiahim) made their first contribution in [https://github.com/typelevel/cats/pull/4248](https://redirect.github.com/typelevel/cats/pull/4248)
- [@TonioGela](https://redirect.github.com/TonioGela) made their first contribution in [https://github.com/typelevel/cats/pull/4255](https://redirect.github.com/typelevel/cats/pull/4255)
- [@emilhotkowski](https://redirect.github.com/emilhotkowski) made their first contribution in [https://github.com/typelevel/cats/pull/4277](https://redirect.github.com/typelevel/cats/pull/4277)
- [@valencik](https://redirect.github.com/valencik) made their first contribution in [https://github.com/typelevel/cats/pull/4290](https://redirect.github.com/typelevel/cats/pull/4290)
- [@exp0nge](https://redirect.github.com/exp0nge) made their first contribution in [https://github.com/typelevel/cats/pull/4293](https://redirect.github.com/typelevel/cats/pull/4293)
- [@cquiroz](https://redirect.github.com/cquiroz) made their first contribution in [https://github.com/typelevel/cats/pull/4296](https://redirect.github.com/typelevel/cats/pull/4296)
- [@atnoya](https://redirect.github.com/atnoya) made their first contribution in [https://github.com/typelevel/cats/pull/4287](https://redirect.github.com/typelevel/cats/pull/4287)
- [@yoshinorin](https://redirect.github.com/yoshinorin) made their first contribution in [https://github.com/typelevel/cats/pull/4321](https://redirect.github.com/typelevel/cats/pull/4321)
- [@eigenvariable](https://redirect.github.com/eigenvariable) made their first contribution in [https://github.com/typelevel/cats/pull/4335](https://redirect.github.com/typelevel/cats/pull/4335)
- [@timo-schmid](https://redirect.github.com/timo-schmid) made their first contribution in [https://github.com/typelevel/cats/pull/4311](https://redirect.github.com/typelevel/cats/pull/4311)
**Full Changelog**: https://github.com/typelevel/cats/compare/v2.8.0...v2.9.0
### [`v2.8.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.8.0)
[Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.7.0...v2.8.0)
Cats v2.8.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.1+ with Scala.js 1.8+ and Scala Native 0.4. This release is the first to support Scala 3 on the Native platform.
#### Features
- Add `foldF` to `IorT` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4075](https://redirect.github.com/typelevel/cats/pull/4075)
- Add `toIorT` on `EitherT` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4108](https://redirect.github.com/typelevel/cats/pull/4108)
- Add `Order` and `PartialOrder` For `SortedMap` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4092](https://redirect.github.com/typelevel/cats/pull/4092)
- `SemigroupK`/`MonoidK` methods by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4084](https://redirect.github.com/typelevel/cats/pull/4084)
- added `ifF` to `Functor` by [@atais](https://redirect.github.com/atais) in [https://github.com/typelevel/cats/pull/4146](https://redirect.github.com/typelevel/cats/pull/4146)
- Alleycats: upgrade `Iterable` instance from `Foldable` to `Traverse`, add `TraverseFilter` by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4152](https://redirect.github.com/typelevel/cats/pull/4152)
- Add `Chain#knownSize` and `Chain#lengthCompare` (`sizeCompare`) methods by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4159](https://redirect.github.com/typelevel/cats/pull/4159)
- Add missing `Chain#distinctBy` method by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4156](https://redirect.github.com/typelevel/cats/pull/4156)
- Move `contain_` to `UnorderedFoldable` by [@BalmungSan](https://redirect.github.com/BalmungSan) in [https://github.com/typelevel/cats/pull/4183](https://redirect.github.com/typelevel/cats/pull/4183)
- Added `flatMapN` by [@domaspoliakas](https://redirect.github.com/domaspoliakas) in [https://github.com/typelevel/cats/pull/4009](https://redirect.github.com/typelevel/cats/pull/4009)
- Add `getOrRaise` for `OptionT`, `EitherT` and `IorT` by [@geirolz](https://redirect.github.com/geirolz) in [https://github.com/typelevel/cats/pull/4212](https://redirect.github.com/typelevel/cats/pull/4212)
- Support lifting polymorphic functions to `FunctionK` in Scala 3 by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/3895](https://redirect.github.com/typelevel/cats/pull/3895)
- Add `mapAccumulate` to `Traverse` by [@BalmungSan](https://redirect.github.com/BalmungSan) in [https://github.com/typelevel/cats/pull/4209](https://redirect.github.com/typelevel/cats/pull/4209)
- Add `replicateA_`, `parReplicateA_` by [@rabinarai1](https://redirect.github.com/rabinarai1) in [https://github.com/typelevel/cats/pull/4208](https://redirect.github.com/typelevel/cats/pull/4208)
- Cross-build for Scala 3 + Native by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4228](https://redirect.github.com/typelevel/cats/pull/4228)
#### Optimizations
- More efficient `slidingN` functions by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4067](https://redirect.github.com/typelevel/cats/pull/4067)
- Optimize `Chain` length methods by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4166](https://redirect.github.com/typelevel/cats/pull/4166)
- A few more `Chain` optimizations by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4170](https://redirect.github.com/typelevel/cats/pull/4170)
- Optimise `Kleisli` with specialized `Function1` implementation by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4211](https://redirect.github.com/typelevel/cats/pull/4211)
- override more `mapAccumulate` methods in `Traverse` by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4214](https://redirect.github.com/typelevel/cats/pull/4214)
- Optimize `replicateA` to have same recursive structure as `replicateA_` by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4233](https://redirect.github.com/typelevel/cats/pull/4233)
- Tail-recursive `replicateA` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4234](https://redirect.github.com/typelevel/cats/pull/4234)
#### Fixes
- Add `Semigroupal[Id]` to implicit scope by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4056](https://redirect.github.com/typelevel/cats/pull/4056)
- Remove `@implicitNotFound` annotations by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4060](https://redirect.github.com/typelevel/cats/pull/4060)
- Return stack-safe `Function0` and `Function1` from `Semigroup#combine` by [@mrdziuban](https://redirect.github.com/mrdziuban) in [https://github.com/typelevel/cats/pull/4093](https://redirect.github.com/typelevel/cats/pull/4093)
- remove unused `Apply#tupleN` type param by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4142](https://redirect.github.com/typelevel/cats/pull/4142)
- Make `catsInstancesForIdCompat2_6_1` package-private by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4191](https://redirect.github.com/typelevel/cats/pull/4191)
- Make `whenA`/`unlessA` syntax by-name lazy by [@catostrophe](https://redirect.github.com/catostrophe), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4207](https://redirect.github.com/typelevel/cats/pull/4207)
- weaken constraint on `ParallelApOps` and `ParallelApplyOps` methods by [@jbwheatley](https://redirect.github.com/jbwheatley) in [https://github.com/typelevel/cats/pull/4078](https://redirect.github.com/typelevel/cats/pull/4078)
- Prevent `Chain` instances being backed by mutable or lazy `Seq` by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4169](https://redirect.github.com/typelevel/cats/pull/4169)
- Use spurious `Fractional[MiniInt]` to test `Invariant[Fractional]` by [@tmccarthy](https://redirect.github.com/tmccarthy) in [https://github.com/typelevel/cats/pull/4216](https://redirect.github.com/typelevel/cats/pull/4216)
- Expose newtype objects to Mima by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4219](https://redirect.github.com/typelevel/cats/pull/4219)
#### Deprecations
- Recommend Cats Effect `IO` as a replacement for every use case of `Future` by [@BalmungSan](https://redirect.github.com/BalmungSan), [@johnynek](https://redirect.github.com/johnynek), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4230](https://redirect.github.com/typelevel/cats/pull/4230)
Any non-pure use of `Future` with Cats is error prone (particularly the semantics of `traverse` with regard to execution order are unspecified). We recommend using [Cats Effect `IO`](https://typelevel.org/cats-effect/) as a replacement for *every* use case of `Future`. However, at this time there are no plans to remove these instances from Cats.
See also: [#4176 Changes in `Future` `traverse` behavior between 2.6 and 2.7](https://redirect.github.com/typelevel/cats/issues/4176)
#### Documentation
- Update maintainers by [@rossabaker](https://redirect.github.com/rossabaker) in [https://github.com/typelevel/cats/pull/4073](https://redirect.github.com/typelevel/cats/pull/4073)
- cats and category theory in readme by [@SethTisue](https://redirect.github.com/SethTisue) in [https://github.com/typelevel/cats/pull/4090
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
2.3.0
->2.12.0
Release Notes
typelevel/cats (org.typelevel:cats-core)
### [`v2.12.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.12.0) [Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.11.0...v2.12.0) Cats v2.12.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.5. #### What's Changed ##### Features - Add `flatMapOrKeep` to `Monad` by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4602](https://redirect.github.com/typelevel/cats/pull/4602) ##### Behind-the-Scenes - Remove special ExecutionContextExecutor by [@kapunga](https://redirect.github.com/kapunga) in [https://github.com/typelevel/cats/pull/4601](https://redirect.github.com/typelevel/cats/pull/4601) - Bump base version to 2.12 by [@mpilquist](https://redirect.github.com/mpilquist) in [https://github.com/typelevel/cats/pull/4606](https://redirect.github.com/typelevel/cats/pull/4606) ##### Updates - Update nscplugin, sbt-scala-native to 0.5.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4585](https://redirect.github.com/typelevel/cats/pull/4585) - Update discipline-munit to 2.0.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4605](https://redirect.github.com/typelevel/cats/pull/4605) #### New Contributors - [@kapunga](https://redirect.github.com/kapunga) made their first contribution in [https://github.com/typelevel/cats/pull/4601](https://redirect.github.com/typelevel/cats/pull/4601) **Full Changelog**: https://github.com/typelevel/cats/compare/v2.11.0...v2.12.0 ### [`v2.11.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.11.0) [Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.10.0...v2.11.0) Cats v2.11.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.4. #### What's Changed ##### Features - Add `OptionT#unlessM` by [@m50d](https://redirect.github.com/m50d) in [https://github.com/typelevel/cats/pull/4519](https://redirect.github.com/typelevel/cats/pull/4519) - Add `mapOrKeep` to Functor by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4582](https://redirect.github.com/typelevel/cats/pull/4582) - Expose FunctionK.liftFunction as a part of the Scala 3 API by [@pomadchin](https://redirect.github.com/pomadchin) in [https://github.com/typelevel/cats/pull/4600](https://redirect.github.com/typelevel/cats/pull/4600) - FunctionKLift cross compiled liftFunction suite by [@pomadchin](https://redirect.github.com/pomadchin) in [https://github.com/typelevel/cats/pull/4603](https://redirect.github.com/typelevel/cats/pull/4603) ##### Optimizations - Replaces other `Applicative.pure(())` with `.unit` by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4558](https://redirect.github.com/typelevel/cats/pull/4558) - Use `Applicative#unit` in `Foldable#traverse_` by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4557](https://redirect.github.com/typelevel/cats/pull/4557) - Optimize traverse by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4498](https://redirect.github.com/typelevel/cats/pull/4498) ##### Fixes - Fix EitherT Bifunctor priority, add Bifoldable instance by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4576](https://redirect.github.com/typelevel/cats/pull/4576) - fix ambiguous ContravariantShow\[SortedSet\[A]] (& SortedMap) by [@chwthewke](https://redirect.github.com/chwthewke) in [https://github.com/typelevel/cats/pull/4575](https://redirect.github.com/typelevel/cats/pull/4575) - Reduce visibility of value member in the `NonEmptyMap` syntax by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4559](https://redirect.github.com/typelevel/cats/pull/4559) ##### Documentation - Fix link to Fetch by [@mainali123](https://redirect.github.com/mainali123) in [https://github.com/typelevel/cats/pull/4522](https://redirect.github.com/typelevel/cats/pull/4522) - update book's link to second edition by [@naferx](https://redirect.github.com/naferx) in [https://github.com/typelevel/cats/pull/4524](https://redirect.github.com/typelevel/cats/pull/4524) - fix wording at end of Semigroup doc by [@vreuter](https://redirect.github.com/vreuter) in [https://github.com/typelevel/cats/pull/4551](https://redirect.github.com/typelevel/cats/pull/4551) - Fix `choice` alias render in docs by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4580](https://redirect.github.com/typelevel/cats/pull/4580) - fix typo by [@Ghurtchu](https://redirect.github.com/Ghurtchu) in [https://github.com/typelevel/cats/pull/4583](https://redirect.github.com/typelevel/cats/pull/4583) - Use syntax in Functor's doc examples by [@jozic](https://redirect.github.com/jozic) in [https://github.com/typelevel/cats/pull/4599](https://redirect.github.com/typelevel/cats/pull/4599) ##### Behind-the-scenes - fix `MonadOps.scala` and `FunctionKMacros.scala` dir by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4548](https://redirect.github.com/typelevel/cats/pull/4548) - Bump base version to 2.11 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4496](https://redirect.github.com/typelevel/cats/pull/4496) - add explicit type by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4508](https://redirect.github.com/typelevel/cats/pull/4508) - fix warning in `build.sbt` by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4518](https://redirect.github.com/typelevel/cats/pull/4518) - enforce new wildcard syntax by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4544](https://redirect.github.com/typelevel/cats/pull/4544) - Update copyright date by [@geny200](https://redirect.github.com/geny200) in [https://github.com/typelevel/cats/pull/4593](https://redirect.github.com/typelevel/cats/pull/4593) ##### Updates - Update sbt-typelevel, sbt-typelevel-site to 0.5.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4497](https://redirect.github.com/typelevel/cats/pull/4497) - Update sbt to 1.9.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4500](https://redirect.github.com/typelevel/cats/pull/4500) - Update scalafmt-core to 3.7.13 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4502](https://redirect.github.com/typelevel/cats/pull/4502) - Update scalafmt-core to 3.7.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4503](https://redirect.github.com/typelevel/cats/pull/4503) - Update sbt-jmh to 0.4.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4506](https://redirect.github.com/typelevel/cats/pull/4506) - Update scala3-library, ... to 3.3.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4507](https://redirect.github.com/typelevel/cats/pull/4507) - Update nscplugin, sbt-scala-native, ... to 0.4.15 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4505](https://redirect.github.com/typelevel/cats/pull/4505) - Update sbt-typelevel, sbt-typelevel-site to 0.5.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4509](https://redirect.github.com/typelevel/cats/pull/4509) - Update scala-library, scala-reflect to 2.13.12 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4510](https://redirect.github.com/typelevel/cats/pull/4510) - Update sbt-typelevel, sbt-typelevel-site to 0.5.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4511](https://redirect.github.com/typelevel/cats/pull/4511) - Update sbt to 1.9.5 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4512](https://redirect.github.com/typelevel/cats/pull/4512) - Update munit to 1.0.0-M9 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4513](https://redirect.github.com/typelevel/cats/pull/4513) - Update sbt to 1.9.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4515](https://redirect.github.com/typelevel/cats/pull/4515) - Update sbt-typelevel, sbt-typelevel-site to 0.5.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4517](https://redirect.github.com/typelevel/cats/pull/4517) - Update munit to 1.0.0-M10 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4516](https://redirect.github.com/typelevel/cats/pull/4516) - Update sbt-scalajs, scalajs-compiler, ... to 1.14.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4520](https://redirect.github.com/typelevel/cats/pull/4520) - Update sbt-typelevel, sbt-typelevel-site to 0.5.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4523](https://redirect.github.com/typelevel/cats/pull/4523) - Update flatMapF in nomenclature.md by [@pera](https://redirect.github.com/pera) in [https://github.com/typelevel/cats/pull/4525](https://redirect.github.com/typelevel/cats/pull/4525) - Update nscplugin, sbt-scala-native, ... to 0.4.16 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4526](https://redirect.github.com/typelevel/cats/pull/4526) - Update sbt-typelevel, sbt-typelevel-site to 0.6.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4527](https://redirect.github.com/typelevel/cats/pull/4527) - Update sbt to 1.9.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4529](https://redirect.github.com/typelevel/cats/pull/4529) - Update scalafmt-core to 3.7.15 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4530](https://redirect.github.com/typelevel/cats/pull/4530) - Update sbt-typelevel, sbt-typelevel-site to 0.6.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4532](https://redirect.github.com/typelevel/cats/pull/4532) - Update sbt-typelevel, sbt-typelevel-site to 0.6.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4535](https://redirect.github.com/typelevel/cats/pull/4535) - Update scalafmt-core to 3.7.17 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4536](https://redirect.github.com/typelevel/cats/pull/4536) - Update sbt-typelevel, sbt-typelevel-site to 0.6.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4538](https://redirect.github.com/typelevel/cats/pull/4538) - Update sbt-jmh to 0.4.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4539](https://redirect.github.com/typelevel/cats/pull/4539) - Update sbt to 1.9.8 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4541](https://redirect.github.com/typelevel/cats/pull/4541) - Update sbt-typelevel, sbt-typelevel-site to 0.6.4 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4542](https://redirect.github.com/typelevel/cats/pull/4542) - Update sbt-typelevel, sbt-typelevel-site to 0.6.5 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4546](https://redirect.github.com/typelevel/cats/pull/4546) - Update nscplugin, sbt-scala-native, ... to 0.4.17 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4550](https://redirect.github.com/typelevel/cats/pull/4550) - Update sbt-scalajs, scalajs-compiler, ... to 1.15.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4549](https://redirect.github.com/typelevel/cats/pull/4549) - Update munit to 1.0.0-M11 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4556](https://redirect.github.com/typelevel/cats/pull/4556) - Update sbt-typelevel, sbt-typelevel-site to 0.6.6 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4560](https://redirect.github.com/typelevel/cats/pull/4560) - Update scalafmt-core to 3.8.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4563](https://redirect.github.com/typelevel/cats/pull/4563) - Update sbt to 1.9.9 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4565](https://redirect.github.com/typelevel/cats/pull/4565) - Update sbt-typelevel, sbt-typelevel-site to 0.6.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4566](https://redirect.github.com/typelevel/cats/pull/4566) - Update scala-library, scala-reflect to 2.13.13 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4568](https://redirect.github.com/typelevel/cats/pull/4568) - Update scala-library, scala-reflect to 2.12.19 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4567](https://redirect.github.com/typelevel/cats/pull/4567) - Update scala3-library, ... to 3.3.3 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4571](https://redirect.github.com/typelevel/cats/pull/4571) - Update sbt-buildinfo to 0.12.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4577](https://redirect.github.com/typelevel/cats/pull/4577) - Update scalafmt-core to 3.8.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4578](https://redirect.github.com/typelevel/cats/pull/4578) - Update sbt-scalajs, scalajs-compiler, ... to 1.16.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4581](https://redirect.github.com/typelevel/cats/pull/4581) - Update discipline-core to 1.6.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4588](https://redirect.github.com/typelevel/cats/pull/4588) - Update scalacheck to 1.17.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4586](https://redirect.github.com/typelevel/cats/pull/4586) - Update sbt-typelevel, sbt-typelevel-site to 0.7.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4591](https://redirect.github.com/typelevel/cats/pull/4591) - Update munit to 1.0.0-RC1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4592](https://redirect.github.com/typelevel/cats/pull/4592) - Update scala-library, scala-reflect to 2.13.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4594](https://redirect.github.com/typelevel/cats/pull/4594) - Update sbt to 1.10.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4596](https://redirect.github.com/typelevel/cats/pull/4596) - Update sbt-typelevel, sbt-typelevel-site to 0.7.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4597](https://redirect.github.com/typelevel/cats/pull/4597) - Update munit to 1.0.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4604](https://redirect.github.com/typelevel/cats/pull/4604) #### New Contributors - [@m50d](https://redirect.github.com/m50d) made their first contribution in [https://github.com/typelevel/cats/pull/4519](https://redirect.github.com/typelevel/cats/pull/4519) - [@mainali123](https://redirect.github.com/mainali123) made their first contribution in [https://github.com/typelevel/cats/pull/4522](https://redirect.github.com/typelevel/cats/pull/4522) - [@naferx](https://redirect.github.com/naferx) made their first contribution in [https://github.com/typelevel/cats/pull/4524](https://redirect.github.com/typelevel/cats/pull/4524) - [@vreuter](https://redirect.github.com/vreuter) made their first contribution in [https://github.com/typelevel/cats/pull/4551](https://redirect.github.com/typelevel/cats/pull/4551) - [@chwthewke](https://redirect.github.com/chwthewke) made their first contribution in [https://github.com/typelevel/cats/pull/4575](https://redirect.github.com/typelevel/cats/pull/4575) - [@Ghurtchu](https://redirect.github.com/Ghurtchu) made their first contribution in [https://github.com/typelevel/cats/pull/4583](https://redirect.github.com/typelevel/cats/pull/4583) - [@geny200](https://redirect.github.com/geny200) made their first contribution in [https://github.com/typelevel/cats/pull/4593](https://redirect.github.com/typelevel/cats/pull/4593) - [@pomadchin](https://redirect.github.com/pomadchin) made their first contribution in [https://github.com/typelevel/cats/pull/4600](https://redirect.github.com/typelevel/cats/pull/4600) **Full Changelog**: https://github.com/typelevel/cats/compare/v2.10.0...v2.11.0 ### [`v2.10.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.10.0) [Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.9.0...v2.10.0) Cats v2.10.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.3+ with Scala.js 1.13+ and Scala Native 0.4. This release includes [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477) which fixes the encoding of `Apply` (and `Semigroupal`) syntax to avoid allocating an intermediate "`Ops`" wrapper class. This affected commonly-used operators such as `*>`. **Unfortunately libraries will need to re-compile and re-publish against Cats v2.10.0 to use the new allocation-free syntax.** Thanks to all the contributors to this release! There are many accumulated changes. #### What's Changed ##### Features - Add `OptionT` combinators for effectful Boolean by [@ivan-klass](https://redirect.github.com/ivan-klass) in [https://github.com/typelevel/cats/pull/4390](https://redirect.github.com/typelevel/cats/pull/4390) - Add `Bifunctor#leftLiftTo` by [@eugkhp](https://redirect.github.com/eugkhp) in [https://github.com/typelevel/cats/pull/4336](https://redirect.github.com/typelevel/cats/pull/4336) - Add `Kleisli.localK` `FunctionK` helper by [@ivan-klass](https://redirect.github.com/ivan-klass) in [https://github.com/typelevel/cats/pull/4406](https://redirect.github.com/typelevel/cats/pull/4406) - add `zip` for `NonEmptySeq` by [@CristinaHG](https://redirect.github.com/CristinaHG) in [https://github.com/typelevel/cats/pull/4431](https://redirect.github.com/typelevel/cats/pull/4431) - Add `Functor#composeBifunctor` by [@bpholt](https://redirect.github.com/bpholt), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4434](https://redirect.github.com/typelevel/cats/pull/4434) - Add `Validated.unit` by [@VladKopanev](https://redirect.github.com/VladKopanev) in [https://github.com/typelevel/cats/pull/4420](https://redirect.github.com/typelevel/cats/pull/4420) - Add `raiseWhen`/`raiseUnless` convenience methods to `EitherObjectOps` by [@Daenyth](https://redirect.github.com/Daenyth) in [https://github.com/typelevel/cats/pull/4436](https://redirect.github.com/typelevel/cats/pull/4436) - `OneAnd`: add `PartialOrder` and `Order` instances by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4460](https://redirect.github.com/typelevel/cats/pull/4460) - Add `Defer` instances for `Eq`, `Hash`, `Order`, `Show`, and variants by [@morgen-peschke](https://redirect.github.com/morgen-peschke) in [https://github.com/typelevel/cats/pull/4414](https://redirect.github.com/typelevel/cats/pull/4414) - Fix ambiguous `Const` instances and add missing instances by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4458](https://redirect.github.com/typelevel/cats/pull/4458) ##### Optimizations - Avoid allocating an `Option` in `NonEmptyList#last` by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4417](https://redirect.github.com/typelevel/cats/pull/4417) - Improve `foldRight` for `Seq` instance by [@rudolmi](https://redirect.github.com/rudolmi) in [https://github.com/typelevel/cats/pull/4440](https://redirect.github.com/typelevel/cats/pull/4440) ##### Fixes - Move `catsTraverseForSeq` to lower-priority implicit scope by [@UlisesTorrella](https://redirect.github.com/UlisesTorrella) in [https://github.com/typelevel/cats/pull/4373](https://redirect.github.com/typelevel/cats/pull/4373) - Making `Map.unorderedTraverse` stack safe by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4463](https://redirect.github.com/typelevel/cats/pull/4463) - Fix unnecessary syntax allocation by [@mox692](https://redirect.github.com/mox692) in [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477) ##### Documentation - Nomenclature for the `SemigroupK` hierarchy by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4329](https://redirect.github.com/typelevel/cats/pull/4329) - Fix readme by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4368](https://redirect.github.com/typelevel/cats/pull/4368) - Fix the nested unordered list HTML view of docs/typeclasses/alternative.md by [@ShapelessCat](https://redirect.github.com/ShapelessCat) in [https://github.com/typelevel/cats/pull/4371](https://redirect.github.com/typelevel/cats/pull/4371) - Fix typo by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4381](https://redirect.github.com/typelevel/cats/pull/4381) - Add missing syntax highlightning by [@Masynchin](https://redirect.github.com/Masynchin) in [https://github.com/typelevel/cats/pull/4382](https://redirect.github.com/typelevel/cats/pull/4382) - Add a link about fs2-throttler by [@kovstas](https://redirect.github.com/kovstas) in [https://github.com/typelevel/cats/pull/4359](https://redirect.github.com/typelevel/cats/pull/4359) - Publish alleycats docs on website by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4393](https://redirect.github.com/typelevel/cats/pull/4393) - `cats.implicits._` -> `cats.syntax.all._` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4394](https://redirect.github.com/typelevel/cats/pull/4394) - Update no script links in readme by [@RawToast](https://redirect.github.com/RawToast) in [https://github.com/typelevel/cats/pull/4397](https://redirect.github.com/typelevel/cats/pull/4397) - Update CONTRIBUTING.md microsite information by [@fabianhjr](https://redirect.github.com/fabianhjr) in [https://github.com/typelevel/cats/pull/4399](https://redirect.github.com/typelevel/cats/pull/4399) - Improve `Chain` Documentation by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4386](https://redirect.github.com/typelevel/cats/pull/4386) - Add API documentation links by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4401](https://redirect.github.com/typelevel/cats/pull/4401) - `f >>> g` in symbols table by [@jose-puente](https://redirect.github.com/jose-puente) in [https://github.com/typelevel/cats/pull/4411](https://redirect.github.com/typelevel/cats/pull/4411) - Fix outdated edit link in algebra docs by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4418](https://redirect.github.com/typelevel/cats/pull/4418) - Update version in readme by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4422](https://redirect.github.com/typelevel/cats/pull/4422) - Fix typo in `Ior` docs by [@fighur](https://redirect.github.com/fighur) in [https://github.com/typelevel/cats/pull/4423](https://redirect.github.com/typelevel/cats/pull/4423) - Update Ring-like table in Algebra for Semifield added in [#3979](https://redirect.github.com/typelevel/cats/issues/3979) by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4426](https://redirect.github.com/typelevel/cats/pull/4426) - Add `foldr` note to `Foldable` doc by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4425](https://redirect.github.com/typelevel/cats/pull/4425) - Bump versions in law testing doc by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4424](https://redirect.github.com/typelevel/cats/pull/4424) - ExhaustiveCheck is a list, not a stream by [@rossabaker](https://redirect.github.com/rossabaker) in [https://github.com/typelevel/cats/pull/4442](https://redirect.github.com/typelevel/cats/pull/4442) - Fix `traverseWithIndex` => `traverseWithIndexM` by [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) in [https://github.com/typelevel/cats/pull/4443](https://redirect.github.com/typelevel/cats/pull/4443) - Fix typo in core's package object docs by [@fatalem0](https://redirect.github.com/fatalem0) in [https://github.com/typelevel/cats/pull/4446](https://redirect.github.com/typelevel/cats/pull/4446) - Fix `jump_start_guide.md` typo by [@BokChoyWarrior](https://redirect.github.com/BokChoyWarrior) in [https://github.com/typelevel/cats/pull/4465](https://redirect.github.com/typelevel/cats/pull/4465) - Remove `Either` documentation page by [@reardonj](https://redirect.github.com/reardonj) in [https://github.com/typelevel/cats/pull/4400](https://redirect.github.com/typelevel/cats/pull/4400) - Add doctest for `IdT` by [@bulatkhabib](https://redirect.github.com/bulatkhabib) in [https://github.com/typelevel/cats/pull/4445](https://redirect.github.com/typelevel/cats/pull/4445) - Fix typo by [@bwignall](https://redirect.github.com/bwignall) in [https://github.com/typelevel/cats/pull/4482](https://redirect.github.com/typelevel/cats/pull/4482) ##### Adopters - Add IPONWEB as an adopter by [@bio-aeon](https://redirect.github.com/bio-aeon) in [https://github.com/typelevel/cats/pull/4384](https://redirect.github.com/typelevel/cats/pull/4384) - Update ADOPTERS.md by [@ehsun7b](https://redirect.github.com/ehsun7b) in [https://github.com/typelevel/cats/pull/4435](https://redirect.github.com/typelevel/cats/pull/4435) - Add PITS Globale Datenrettungsdienste as an adopter by [@arnoldberlin](https://redirect.github.com/arnoldberlin) in [https://github.com/typelevel/cats/pull/4472](https://redirect.github.com/typelevel/cats/pull/4472) ##### Behind-the-scenes - Bump base version to 2.10 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4341](https://redirect.github.com/typelevel/cats/pull/4341) - Remove plugins we get via sbt-typelevel by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4344](https://redirect.github.com/typelevel/cats/pull/4344) - Clean up benchmarks' dependencies by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4355](https://redirect.github.com/typelevel/cats/pull/4355) - Fix Native CI by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4363](https://redirect.github.com/typelevel/cats/pull/4363) - remove unused version number by [@kailuowang](https://redirect.github.com/kailuowang) in [https://github.com/typelevel/cats/pull/4358](https://redirect.github.com/typelevel/cats/pull/4358) - Move `NonEmptyReducible` into its own file by [@fabianhjr](https://redirect.github.com/fabianhjr) in [https://github.com/typelevel/cats/pull/4398](https://redirect.github.com/typelevel/cats/pull/4398) - Delete PR template by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4459](https://redirect.github.com/typelevel/cats/pull/4459) - Replaced `traverse` benchmarks with something more representative by [@djspiewak](https://redirect.github.com/djspiewak) in [https://github.com/typelevel/cats/pull/4403](https://redirect.github.com/typelevel/cats/pull/4403) - Update to sbt-typelevel 0.5.0 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4478](https://redirect.github.com/typelevel/cats/pull/4478) ##### Updates - Update scala3-library, ... to 3.3.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4448](https://redirect.github.com/typelevel/cats/pull/4448) - Update nscplugin, sbt-scala-native, ... to 0.4.14 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4454](https://redirect.github.com/typelevel/cats/pull/4454) - Update scala-library, scala-reflect to 2.12.18 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4455](https://redirect.github.com/typelevel/cats/pull/4455) - Update scala-library, scala-reflect to 2.13.11 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4456](https://redirect.github.com/typelevel/cats/pull/4456) - Update sbt-scalajs, scalajs-compiler, ... to 1.13.2 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4464](https://redirect.github.com/typelevel/cats/pull/4464) #### New Contributors - [@ShapelessCat](https://redirect.github.com/ShapelessCat) made their first contribution in [https://github.com/typelevel/cats/pull/4371](https://redirect.github.com/typelevel/cats/pull/4371) - [@UlisesTorrella](https://redirect.github.com/UlisesTorrella) made their first contribution in [https://github.com/typelevel/cats/pull/4373](https://redirect.github.com/typelevel/cats/pull/4373) - [@Masynchin](https://redirect.github.com/Masynchin) made their first contribution in [https://github.com/typelevel/cats/pull/4381](https://redirect.github.com/typelevel/cats/pull/4381) - [@bio-aeon](https://redirect.github.com/bio-aeon) made their first contribution in [https://github.com/typelevel/cats/pull/4384](https://redirect.github.com/typelevel/cats/pull/4384) - [@kovstas](https://redirect.github.com/kovstas) made their first contribution in [https://github.com/typelevel/cats/pull/4359](https://redirect.github.com/typelevel/cats/pull/4359) - [@fabianhjr](https://redirect.github.com/fabianhjr) made their first contribution in [https://github.com/typelevel/cats/pull/4398](https://redirect.github.com/typelevel/cats/pull/4398) - [@reardonj](https://redirect.github.com/reardonj) made their first contribution in [https://github.com/typelevel/cats/pull/4386](https://redirect.github.com/typelevel/cats/pull/4386) - [@eugkhp](https://redirect.github.com/eugkhp) made their first contribution in [https://github.com/typelevel/cats/pull/4336](https://redirect.github.com/typelevel/cats/pull/4336) - [@jose-puente](https://redirect.github.com/jose-puente) made their first contribution in [https://github.com/typelevel/cats/pull/4411](https://redirect.github.com/typelevel/cats/pull/4411) - [@lenguyenthanh](https://redirect.github.com/lenguyenthanh) made their first contribution in [https://github.com/typelevel/cats/pull/4418](https://redirect.github.com/typelevel/cats/pull/4418) - [@fighur](https://redirect.github.com/fighur) made their first contribution in [https://github.com/typelevel/cats/pull/4423](https://redirect.github.com/typelevel/cats/pull/4423) - [@ehsun7b](https://redirect.github.com/ehsun7b) made their first contribution in [https://github.com/typelevel/cats/pull/4435](https://redirect.github.com/typelevel/cats/pull/4435) - [@CristinaHG](https://redirect.github.com/CristinaHG) made their first contribution in [https://github.com/typelevel/cats/pull/4431](https://redirect.github.com/typelevel/cats/pull/4431) - [@VladKopanev](https://redirect.github.com/VladKopanev) made their first contribution in [https://github.com/typelevel/cats/pull/4420](https://redirect.github.com/typelevel/cats/pull/4420) - [@rudolmi](https://redirect.github.com/rudolmi) made their first contribution in [https://github.com/typelevel/cats/pull/4440](https://redirect.github.com/typelevel/cats/pull/4440) - [@fatalem0](https://redirect.github.com/fatalem0) made their first contribution in [https://github.com/typelevel/cats/pull/4446](https://redirect.github.com/typelevel/cats/pull/4446) - [@BokChoyWarrior](https://redirect.github.com/BokChoyWarrior) made their first contribution in [https://github.com/typelevel/cats/pull/4465](https://redirect.github.com/typelevel/cats/pull/4465) - [@arnoldberlin](https://redirect.github.com/arnoldberlin) made their first contribution in [https://github.com/typelevel/cats/pull/4472](https://redirect.github.com/typelevel/cats/pull/4472) - [@bulatkhabib](https://redirect.github.com/bulatkhabib) made their first contribution in [https://github.com/typelevel/cats/pull/4445](https://redirect.github.com/typelevel/cats/pull/4445) - [@mox692](https://redirect.github.com/mox692) made their first contribution in [https://github.com/typelevel/cats/pull/4477](https://redirect.github.com/typelevel/cats/pull/4477) **Full Changelog**: https://github.com/typelevel/cats/compare/v2.9.0...v2.10.0 ### [`v2.9.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.9.0) [Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.8.0...v2.9.0) Cats v2.9.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.2+ with Scala.js 1.8+ and Scala Native 0.4. #### What's Changed ##### Features - Added `updated` to `Traverse` by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4248](https://redirect.github.com/typelevel/cats/pull/4248) - Added `zipWithLongIndex`, `mapWithLongIndex` and `traverseWithLongIndexM` by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4247](https://redirect.github.com/typelevel/cats/pull/4247) - Add `collectFirst` to the `NonEmptyCollection` interface by [@DavidGregory084](https://redirect.github.com/DavidGregory084) in [https://github.com/typelevel/cats/pull/4275](https://redirect.github.com/typelevel/cats/pull/4275) - Added discipline tests for the new `Traverse` laws by [@nikololiahim](https://redirect.github.com/nikololiahim) in [https://github.com/typelevel/cats/pull/4283](https://redirect.github.com/typelevel/cats/pull/4283) - Add `traverseCollect` to `TraverseFilter` typeclass by [@emilhotkowski](https://redirect.github.com/emilhotkowski) in [https://github.com/typelevel/cats/pull/4277](https://redirect.github.com/typelevel/cats/pull/4277) - Add `NonEmptyList#prependAll` by [@saeltz](https://redirect.github.com/saeltz) in [https://github.com/typelevel/cats/pull/4267](https://redirect.github.com/typelevel/cats/pull/4267) - Add `EitherT#biSemiflatTap` which combines `leftSemiflatTap` and `semiflatTap` by [@exp0nge](https://redirect.github.com/exp0nge) in [https://github.com/typelevel/cats/pull/4293](https://redirect.github.com/typelevel/cats/pull/4293) - Optimize `Alternative` (part 3): add `prependK`/`appendK` specializations for Cats NE wrappers by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4055](https://redirect.github.com/typelevel/cats/pull/4055) - Added `parFlatMapN` by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4243](https://redirect.github.com/typelevel/cats/pull/4243) - Added `Align` instances for `Id` and `Kleisli` by [@atnoya](https://redirect.github.com/atnoya) in [https://github.com/typelevel/cats/pull/4287](https://redirect.github.com/typelevel/cats/pull/4287) - Add `ApplicativeError#voidError` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4324](https://redirect.github.com/typelevel/cats/pull/4324) ##### Optimizations - Change the ordering of invocations in `Defer#fix` by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4252](https://redirect.github.com/typelevel/cats/pull/4252) - Optimise boilerplate generators, use instance constructors by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/3871](https://redirect.github.com/typelevel/cats/pull/3871) - Avoid using `NonFatal.unapply` by [@jhnsmth](https://redirect.github.com/jhnsmth) in [https://github.com/typelevel/cats/pull/4282](https://redirect.github.com/typelevel/cats/pull/4282) - Use SAM syntax for typeclass instances where possible by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4279](https://redirect.github.com/typelevel/cats/pull/4279) - Singleton monoid instances by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4314](https://redirect.github.com/typelevel/cats/pull/4314) - Avoid allocations for `Monoid` instances where possible by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4309](https://redirect.github.com/typelevel/cats/pull/4309) - Make string building a bit more efficient for `NonEmptySeq` by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4326](https://redirect.github.com/typelevel/cats/pull/4326) ##### Fixes - Don't require `Order` for the value on `Cogen` for `SortedMap` and `NonEmptyMap` by [@cquiroz](https://redirect.github.com/cquiroz) in [https://github.com/typelevel/cats/pull/4296](https://redirect.github.com/typelevel/cats/pull/4296) - Make `cats.compat` a package object for `for2_13Use3` compatibility by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4315](https://redirect.github.com/typelevel/cats/pull/4315) - Fix ambiguous `contains_` syntax by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4320](https://redirect.github.com/typelevel/cats/pull/4320) ##### Deprecations - Deprecate `HashLaws#sameAsUniversalHash` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4319](https://redirect.github.com/typelevel/cats/pull/4319) ##### Documentation - Remove LEGO from adopters list by [@hejfelix](https://redirect.github.com/hejfelix) in [https://github.com/typelevel/cats/pull/4242](https://redirect.github.com/typelevel/cats/pull/4242) - Fix Free Monad example by [@youta32449999](https://redirect.github.com/youta32449999) in [https://github.com/typelevel/cats/pull/4253](https://redirect.github.com/typelevel/cats/pull/4253) - Mention `asRight` and `asLeft` for constructing Either values by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4257](https://redirect.github.com/typelevel/cats/pull/4257) - Fix comment in Free Monad example by [@youta32449999](https://redirect.github.com/youta32449999) in [https://github.com/typelevel/cats/pull/4259](https://redirect.github.com/typelevel/cats/pull/4259) - Add proof of inconsistency for a `Validated` Monad by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4255](https://redirect.github.com/typelevel/cats/pull/4255) - Mention `tupled` syntax, a Cats workhorse that deserves to be more well known by [@benhutchison](https://redirect.github.com/benhutchison) in [https://github.com/typelevel/cats/pull/4269](https://redirect.github.com/typelevel/cats/pull/4269) - Add missing `scala` modifier to code block by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4274](https://redirect.github.com/typelevel/cats/pull/4274) - Build docs on 2.13 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4238](https://redirect.github.com/typelevel/cats/pull/4238) - Fix list formatting in docs / site by [@valencik](https://redirect.github.com/valencik) in [https://github.com/typelevel/cats/pull/4290](https://redirect.github.com/typelevel/cats/pull/4290) - Move the adopters' companies list to a separate file/page by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4291](https://redirect.github.com/typelevel/cats/pull/4291) - Keep the cats version up to date on the website by [@danicheg](https://redirect.github.com/danicheg) in [https://github.com/typelevel/cats/pull/4294](https://redirect.github.com/typelevel/cats/pull/4294) - Include laws in published API docs by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4318](https://redirect.github.com/typelevel/cats/pull/4318) - Fix markdown syntax for link to `Applicative` in `OptionT` by [@yoshinorin](https://redirect.github.com/yoshinorin) in [https://github.com/typelevel/cats/pull/4321](https://redirect.github.com/typelevel/cats/pull/4321) - Add more DocTests for `OptionT` by [@timo-schmid](https://redirect.github.com/timo-schmid) in [https://github.com/typelevel/cats/pull/4311](https://redirect.github.com/typelevel/cats/pull/4311) ##### Behind-the-scenes - Ignore updates to cats-core by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4241](https://redirect.github.com/typelevel/cats/pull/4241) - Bump base version to 2.9 by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4239](https://redirect.github.com/typelevel/cats/pull/4239) - Refactored `Chain` and `CollectiveMonoid` benchmarks by [@TonioGela](https://redirect.github.com/TonioGela) in [https://github.com/typelevel/cats/pull/4264](https://redirect.github.com/typelevel/cats/pull/4264) - Fix obvious and straightforward warnings by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4323](https://redirect.github.com/typelevel/cats/pull/4323) - Add commits to `.git-blame-ignore-revs` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4334](https://redirect.github.com/typelevel/cats/pull/4334) - Add stack-safety test for `ContT#map` by [@eigenvariable](https://redirect.github.com/eigenvariable) in [https://github.com/typelevel/cats/pull/4335](https://redirect.github.com/typelevel/cats/pull/4335) - Add release notes config by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4330](https://redirect.github.com/typelevel/cats/pull/4330) ##### Updates - Update sbt-scalajs, scalajs-compiler, ... to 1.10.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4254](https://redirect.github.com/typelevel/cats/pull/4254) - Update nscplugin, sbt-scala-native, ... to 0.4.7 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4289](https://redirect.github.com/typelevel/cats/pull/4289) - Update scalacheck to 1.17.0 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4297](https://redirect.github.com/typelevel/cats/pull/4297) - Update scala3-library, ... to 3.2.1 by [@typelevel-steward](https://redirect.github.com/typelevel-steward) in [https://github.com/typelevel/cats/pull/4337](https://redirect.github.com/typelevel/cats/pull/4337) #### New Contributors - [@hejfelix](https://redirect.github.com/hejfelix) made their first contribution in [https://github.com/typelevel/cats/pull/4242](https://redirect.github.com/typelevel/cats/pull/4242) - [@youta32449999](https://redirect.github.com/youta32449999) made their first contribution in [https://github.com/typelevel/cats/pull/4253](https://redirect.github.com/typelevel/cats/pull/4253) - [@nikololiahim](https://redirect.github.com/nikololiahim) made their first contribution in [https://github.com/typelevel/cats/pull/4248](https://redirect.github.com/typelevel/cats/pull/4248) - [@TonioGela](https://redirect.github.com/TonioGela) made their first contribution in [https://github.com/typelevel/cats/pull/4255](https://redirect.github.com/typelevel/cats/pull/4255) - [@emilhotkowski](https://redirect.github.com/emilhotkowski) made their first contribution in [https://github.com/typelevel/cats/pull/4277](https://redirect.github.com/typelevel/cats/pull/4277) - [@valencik](https://redirect.github.com/valencik) made their first contribution in [https://github.com/typelevel/cats/pull/4290](https://redirect.github.com/typelevel/cats/pull/4290) - [@exp0nge](https://redirect.github.com/exp0nge) made their first contribution in [https://github.com/typelevel/cats/pull/4293](https://redirect.github.com/typelevel/cats/pull/4293) - [@cquiroz](https://redirect.github.com/cquiroz) made their first contribution in [https://github.com/typelevel/cats/pull/4296](https://redirect.github.com/typelevel/cats/pull/4296) - [@atnoya](https://redirect.github.com/atnoya) made their first contribution in [https://github.com/typelevel/cats/pull/4287](https://redirect.github.com/typelevel/cats/pull/4287) - [@yoshinorin](https://redirect.github.com/yoshinorin) made their first contribution in [https://github.com/typelevel/cats/pull/4321](https://redirect.github.com/typelevel/cats/pull/4321) - [@eigenvariable](https://redirect.github.com/eigenvariable) made their first contribution in [https://github.com/typelevel/cats/pull/4335](https://redirect.github.com/typelevel/cats/pull/4335) - [@timo-schmid](https://redirect.github.com/timo-schmid) made their first contribution in [https://github.com/typelevel/cats/pull/4311](https://redirect.github.com/typelevel/cats/pull/4311) **Full Changelog**: https://github.com/typelevel/cats/compare/v2.8.0...v2.9.0 ### [`v2.8.0`](https://redirect.github.com/typelevel/cats/releases/tag/v2.8.0) [Compare Source](https://redirect.github.com/typelevel/cats/compare/v2.7.0...v2.8.0) Cats v2.8.0 is a binary-compatible release in the 2.x series. It is published for Scala 2.12, 2.13, and 3.1+ with Scala.js 1.8+ and Scala Native 0.4. This release is the first to support Scala 3 on the Native platform. #### Features - Add `foldF` to `IorT` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4075](https://redirect.github.com/typelevel/cats/pull/4075) - Add `toIorT` on `EitherT` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4108](https://redirect.github.com/typelevel/cats/pull/4108) - Add `Order` and `PartialOrder` For `SortedMap` by [@isomarcte](https://redirect.github.com/isomarcte) in [https://github.com/typelevel/cats/pull/4092](https://redirect.github.com/typelevel/cats/pull/4092) - `SemigroupK`/`MonoidK` methods by [@TimWSpence](https://redirect.github.com/TimWSpence) in [https://github.com/typelevel/cats/pull/4084](https://redirect.github.com/typelevel/cats/pull/4084) - added `ifF` to `Functor` by [@atais](https://redirect.github.com/atais) in [https://github.com/typelevel/cats/pull/4146](https://redirect.github.com/typelevel/cats/pull/4146) - Alleycats: upgrade `Iterable` instance from `Foldable` to `Traverse`, add `TraverseFilter` by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4152](https://redirect.github.com/typelevel/cats/pull/4152) - Add `Chain#knownSize` and `Chain#lengthCompare` (`sizeCompare`) methods by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4159](https://redirect.github.com/typelevel/cats/pull/4159) - Add missing `Chain#distinctBy` method by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4156](https://redirect.github.com/typelevel/cats/pull/4156) - Move `contain_` to `UnorderedFoldable` by [@BalmungSan](https://redirect.github.com/BalmungSan) in [https://github.com/typelevel/cats/pull/4183](https://redirect.github.com/typelevel/cats/pull/4183) - Added `flatMapN` by [@domaspoliakas](https://redirect.github.com/domaspoliakas) in [https://github.com/typelevel/cats/pull/4009](https://redirect.github.com/typelevel/cats/pull/4009) - Add `getOrRaise` for `OptionT`, `EitherT` and `IorT` by [@geirolz](https://redirect.github.com/geirolz) in [https://github.com/typelevel/cats/pull/4212](https://redirect.github.com/typelevel/cats/pull/4212) - Support lifting polymorphic functions to `FunctionK` in Scala 3 by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/3895](https://redirect.github.com/typelevel/cats/pull/3895) - Add `mapAccumulate` to `Traverse` by [@BalmungSan](https://redirect.github.com/BalmungSan) in [https://github.com/typelevel/cats/pull/4209](https://redirect.github.com/typelevel/cats/pull/4209) - Add `replicateA_`, `parReplicateA_` by [@rabinarai1](https://redirect.github.com/rabinarai1) in [https://github.com/typelevel/cats/pull/4208](https://redirect.github.com/typelevel/cats/pull/4208) - Cross-build for Scala 3 + Native by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4228](https://redirect.github.com/typelevel/cats/pull/4228) #### Optimizations - More efficient `slidingN` functions by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4067](https://redirect.github.com/typelevel/cats/pull/4067) - Optimize `Chain` length methods by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4166](https://redirect.github.com/typelevel/cats/pull/4166) - A few more `Chain` optimizations by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4170](https://redirect.github.com/typelevel/cats/pull/4170) - Optimise `Kleisli` with specialized `Function1` implementation by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4211](https://redirect.github.com/typelevel/cats/pull/4211) - override more `mapAccumulate` methods in `Traverse` by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4214](https://redirect.github.com/typelevel/cats/pull/4214) - Optimize `replicateA` to have same recursive structure as `replicateA_` by [@johnynek](https://redirect.github.com/johnynek) in [https://github.com/typelevel/cats/pull/4233](https://redirect.github.com/typelevel/cats/pull/4233) - Tail-recursive `replicateA` by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4234](https://redirect.github.com/typelevel/cats/pull/4234) #### Fixes - Add `Semigroupal[Id]` to implicit scope by [@joroKr21](https://redirect.github.com/joroKr21) in [https://github.com/typelevel/cats/pull/4056](https://redirect.github.com/typelevel/cats/pull/4056) - Remove `@implicitNotFound` annotations by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4060](https://redirect.github.com/typelevel/cats/pull/4060) - Return stack-safe `Function0` and `Function1` from `Semigroup#combine` by [@mrdziuban](https://redirect.github.com/mrdziuban) in [https://github.com/typelevel/cats/pull/4093](https://redirect.github.com/typelevel/cats/pull/4093) - remove unused `Apply#tupleN` type param by [@xuwei-k](https://redirect.github.com/xuwei-k) in [https://github.com/typelevel/cats/pull/4142](https://redirect.github.com/typelevel/cats/pull/4142) - Make `catsInstancesForIdCompat2_6_1` package-private by [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4191](https://redirect.github.com/typelevel/cats/pull/4191) - Make `whenA`/`unlessA` syntax by-name lazy by [@catostrophe](https://redirect.github.com/catostrophe), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4207](https://redirect.github.com/typelevel/cats/pull/4207) - weaken constraint on `ParallelApOps` and `ParallelApplyOps` methods by [@jbwheatley](https://redirect.github.com/jbwheatley) in [https://github.com/typelevel/cats/pull/4078](https://redirect.github.com/typelevel/cats/pull/4078) - Prevent `Chain` instances being backed by mutable or lazy `Seq` by [@bplommer](https://redirect.github.com/bplommer) in [https://github.com/typelevel/cats/pull/4169](https://redirect.github.com/typelevel/cats/pull/4169) - Use spurious `Fractional[MiniInt]` to test `Invariant[Fractional]` by [@tmccarthy](https://redirect.github.com/tmccarthy) in [https://github.com/typelevel/cats/pull/4216](https://redirect.github.com/typelevel/cats/pull/4216) - Expose newtype objects to Mima by [@satorg](https://redirect.github.com/satorg) in [https://github.com/typelevel/cats/pull/4219](https://redirect.github.com/typelevel/cats/pull/4219) #### Deprecations - Recommend Cats Effect `IO` as a replacement for every use case of `Future` by [@BalmungSan](https://redirect.github.com/BalmungSan), [@johnynek](https://redirect.github.com/johnynek), [@armanbilge](https://redirect.github.com/armanbilge) in [https://github.com/typelevel/cats/pull/4230](https://redirect.github.com/typelevel/cats/pull/4230) Any non-pure use of `Future` with Cats is error prone (particularly the semantics of `traverse` with regard to execution order are unspecified). We recommend using [Cats Effect `IO`](https://typelevel.org/cats-effect/) as a replacement for *every* use case of `Future`. However, at this time there are no plans to remove these instances from Cats. See also: [#4176 Changes in `Future` `traverse` behavior between 2.6 and 2.7](https://redirect.github.com/typelevel/cats/issues/4176) #### Documentation - Update maintainers by [@rossabaker](https://redirect.github.com/rossabaker) in [https://github.com/typelevel/cats/pull/4073](https://redirect.github.com/typelevel/cats/pull/4073) - cats and category theory in readme by [@SethTisue](https://redirect.github.com/SethTisue) in [https://github.com/typelevel/cats/pull/4090Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.