Overview
Essential Shapeless is a course aimed at experienced Scala developers wanting to eliminate boilerplate from their codebases. The course works through several in depth examples of type class derivation designed to cover the main theoretical topics required to understand type class derivation using shapeless.
Course Overview
In the morning we cover the following aspects of type theory used by key parts of shapeless machinery:
- Algebraic data types and type classes
- Generic representations:
HLists
andCoproducts
- Dependent types
- Literal types and type tagging
- Polymorphic functions
- Type level natural numbers
During the afternoon we put the theory into practice on a number of worked examples of type class derivation, drawn from a library of possibilities:
- Serialization
- Equality checking
Monoid
andSemigroup
- Validation rules
- Diffs and patches
- Random value generation