Daniel is a somewhat functional developer who's convinced that the best way to learn something is to teach it.
The influence of category theory on statically-typed functional programming is undeniable. The liberal usage of terms such as "functor" and "monad" seems to prove this point. Category theory is certainly a rich source of ideas, but one gets the impression that it is more than just that. Proficiency in category theory appears to enable software developers to explore new concepts and abstractions in a more far-reaching and systematic way.
On closer inspection, this should not come as a surprise. category theory can be seen as being about defining concepts by their relationships to one another. Sometimes, this allows finding and exploring new ideas by just "following the arrows", which is one of the many useful exploration techniques to be found in a category theorist's toolbox.
In this talk, I will try to demonstrate some of these exploration techniques by developing and analyzing examples from the world of functional programming phrased in the language of category theory. We will see how this enables us to systematically tackle concepts by deconstructing them and deriving new ideas from them. That is, we will use category theory as a tool—a tool for thought.