I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.
Can we derive endpoints from just a trait definition? One of Scala's strengths is domain modelling, and from a data definition, we can derive generic information in a Mirror, e.g. to generate type classes. For operations (such as endpoints) there is less support from metaprogramming, so we often create DSLs to describe them. I propose that we can extend Mirrors to operations, and use the most natural DSL of all - plain trait definitions.
This talk aims to equip the audience with the minimum required bagage to get comfortable working with contravariance.
In this talk, I will cover three key concepts that emerged from reflecting on this past year of learning: making mistakes, helping others to help you and finding community.
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.