Let's explore a real-world use case combining typeclasses, literal types, shapeless and scala.meta
How to program the type system
Scala has a rich static type system which provides powerful features such as implicits and typeclasses.
In this talk, we will explore a real-world use case combining typeclasses, literal types, shapeless and scala.meta to program the type-system to understand and validate simple SQL queries. The resulting solution will ensure they match a given schema without requiring a database connection.
The code examples are based on Troy, an open-source Cassandra driver which allows developers to paste raw queries within Scala code in a way such that they get compile time schema validation and derivation of case-class marshallers for free.
The talk targets established Scala developers who would like to know more about advanced Scala features and libraries. You will learn how to program the type system, use HLists, and augment all of that using a pinch of scala.meta on the top!
Have a sneak peek at the code examples here: https://github.com/tabdulradi/toy-troy