10:15 – 10:45 CET

July 31st, 2020

Joachim Breitner

The many faces of isOrderedTree

In this talk, we will look at a seemingly simple programming problem, checking whether the elements in a binary tree are in order‚ and not only explore many different approaches to solving this problem, but also show how they are all connected. As we do that, we will touch upon equational reasoning, defunctionalization, the worker-wrapper transformation, and more. We learn about the limits of type-driven development and finally appreciate the deep significance of type class laws.

This talk only assumes elementary knowledge of Haskell (or functional programming in general): Algebraic data types and recursive functions.