This talk presents a generalization of implicit parameters to implicit function types, a powerful way to abstract over the context in which some piece of code is run.
To illustrate their abstraction capabilities, we present several applications that make use of implicit function types. We show how to encode the builder pattern, the reader monad, tagless interpreters, and free structures.
Basic knowledge about Scala implicits, not be afraid of the M word.
Get a grasp on implicit function types.
I'm a PhD student at EPFL (Ècole polytechnique fédérale de Lausanne) under the supervision of Martin Odersky. I'm interested in generic programming, staging and functional programming in general. I have made several contributions to the Scala open source community, in addition to my work on the Dotty compiler I'm currently maintaining two libraries: Frameless and Monadic HTML.