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.
A short case study of a real production issue that was debugged, minimized, and fixed using property-based testing.
How to make Scala more approachable and productive?
Avoid mistakes in API design, implementation and evolution with Smithy
How to implement fast and cost-effective backend for a multiplayer game using Scala, Akka and GraalVM
A blueprint and approach for building end-to-end, full-stack applications in 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