This talk aims to equip the audience with the minimum required bagage to get comfortable working with contravariance.
I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.
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 beginner-friendly talk we'll try to find out using the power of Scala and functional programming techniques.