This talk is my slightly expanded version of that statement, and should hopefully understand what "Free" is, what purpose it serves and where it came from.

Free is something I've wanted to understand for quite a while, but could never quite figure it out. I’d essentially given up on it until a friend of mine, known to be particularly fond of pithy statements, told me "Free is merely the defunctionalisation of Monad in its most uncomfortable configuration". He didn’t add "what’s the problem?" but it was clearly implied.
The odd thing though is that after playing with this for a bit, it turned out to be exactly what I needed to hear to get me unstuck.
This talk is my slightly expanded version of that statement, and should hopefully understand what "Free" is, what purpose it serves and where it came from.
In this talk, we will start with the basics, understanding what build caching is and why it can be a bit tricky to handle in real projects.
Drawing on 25 years of experience as a professional musician and record producer, this will be a beginner focused talk introducing the use of Scala.js and the web audio api for building Scala powered Web Audio Applications.
Join me for a fun and possibly opinionated talk about the state of Scala and other JVM languages.
In this talk, we will take a tour around the `error` function. Starting from the simple use-cases and ending up with sophisticated yet developer-friendly error messages.
I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.