While my main programming language at work is now Rust, I come from a Haskell / Scala background with a love for functional programming.
I started several open-source projects, like specs2 in Scala for testing and the suite of "registry" libraries in Haskell to help with the graceful evolution of large code bases
This talk presents three apparently different situations: protocol evolution, flexible data generation, and modular applications. In each case, the main concern is how the code can be easily wired and rewired. It turns out that a simple idea, building a list of functions and values, can help us solve those challenges and is implemented with a suite of libraries in Haskell.
The audience will learn that typeclasses and generics are not the best solutions to all the problems in Haskell! They will also learn this it is possible to grow large applications in Haskell without too many headaches, and that dealing with large domain models does not have to be a maintenance burden when it comes to serialization or data generation (please see the https://github.com/etorreborre/registry library for more details).
This talk is mostly applicable to Haskell developers since it presents an approach currently supported by a Haskell library. However, it might give ideas on how to solve similar problems with other programming languages