Let's take a look at the issues that enums have in Scala 2 and whether we found the Holy Grail with the introduction of Scala 3.

Enums are one of the language features that Scala 2 has been infamous for. The sole fact that there’s a number of approaches to implement enum-like behavior is already a warning light. Then, no matter which approach you choose - the built-in Enumeration, ADTs or an external library like Enumeratum - all of them have some drawbacks. Scala 3 has promised a revolution in the area of enums. In this talk we’re going to look at the issues that enums have in Scala 2 and whether we found the Holy Grail with the introduction of Scala 3.
I'll share a handful of techniques that can help you avoid runtime errors and shift them to the realm of compile time
How to make Scala more approachable and productive?
We will look into three less-understood, yet (arguably) extremely useful constructs introduced in Cats Effect 3: Dispatcher, Supervisor, IOLocal