This talk is about the development of the tofu library designed to facilitate the development of tagless final applications. And about how the search for design solutions for creating high-level abstractions for functional programming can lead to a rethinking of object-oriented programming.