Recursive structures appear in many problems, from databases to machine learning, and writing functions to operate over them is not always a simple task. As functional programming tries to abstract as many things as possible, it offers a way to decouple a recursion from the implementation of business rules. In this session, Andy and Oli will guide you through recursion schemes fundamentals and Droste, a recursion library for Scala. Along the way, we will explore how it can be utilized in practice, including examples of its usage in Skeuomorph, a library for transforming data protocols.