Understanding the exact properties that disqualify a data type from being an instance of a given abstraction turns out to be surprisingly helpful

Abstractions such as functor, monads... are often explained by example, which I think is only half of what's needed to build a solid intuition. The other half is counter-examples: things that *aren't* things. This talk intends to fill that void, by going through the list of common abstractions and showing types that are, say, a functor, but not an applicative. While this may sound more like a toy than something useful, understanding the exact properties that disqualify a data type from being an instance of a given abstraction turns out to be surprisingly helpful, and have certainly allowed me to go further in my study of such things.
We will look into three less-understood, yet (arguably) extremely useful constructs introduced in Cats Effect 3: Dispatcher, Supervisor, IOLocal
How Libretto, a Scala DSL for concurrent programming, can be used for writing custom stream operators
How to implement fast and cost-effective backend for a multiplayer game using Scala, Akka and GraalVM
How to leverage Scala with scala.js to write frontend as functional programmers would do.
Don't miss out on this opportunity to connect with Scalar community and create lasting memories