Demystifying Shapeless: An Exploration of Dependent Types in Scala
I will examine the core ideas used in the implementation of Shapeless and develop an understanding of how to use the library and the key ideas behind it. The goal is demonstrate to developers how they can leverage Scala's more advanced features as way to encode stronger static guarantees about the programs they write. Each concept will be accompanied by pragmatic examples that demonstrate how one can apply these techniques in day to day software engineering.