Have you been scared when you’ve seen shapeless for the first time? Like I was? Well, in this talk I will try to demystify some of the core concepts of this elegant library, try to give you a hint on how to approach it. We will start from the basics, rethinking ADTs in Scala and their generic representations. Then we will go through the notion of Type Class pattern and how we can derive instances for generic ADTs. There will be a short livecoding sessions throughout the talk, covering some of the specific type-level patterns.