There was Scala 2.13.1 release recently and sbt 1.3.0 was release in early September. sbt 1.3.1 was also released just about two weeks after sbt 1.3.0 release.
I'd like to talk about some improvement in Scala 2.13 (not just 2.13.1). Yet, before doing that, I'd like to quickly mention one thing that sbt 1.3.x has much better than the previous versions.
From sbt 1.3.0, Coursier is used as the default artifact fetcher instead of ivy. Coursier is written in Scala and known to be much faster than ivy. I haven't benchmarked anything but I can feel that it's faster.
Improvement (Partial Unification is enabled by default)
Updated: This is not really an improvement in Scala 2.13. It's because partial unification is on by default in Scala 2.13. It's the same as having
scalacOptions += "-Ypartial-unification"in older Scala. In 2.13,
-Ypartial-unificationis no longer available as it's always enabled by default.
Now for Scala 2.13, I don't want to repeat what the release note or changelog says. I just want to share some improvement I experienced.
There's an improvement in type inference for higher-kinded type with more than one type parameter.
The Scala versions prior to 2.13, the following code using Scalaz results in compile-time error.
Using Cats doesn't help either.
To make it work in Scala prior to 2.13, type parameters should be specified and for the
EitherT takes, type alias should be used like this.
How tedious! So much boilerplate code.
Now with Scala 2.13, the first two code snippets just work.