Defunctionalization and Freyd’s Theorem Posted by Bartosz Milewski under Category Theory, Programming [9] Comments The main idea of functional programming is to treat functions like any other data types. In particular, we want to be able to pass functions as arguments to other functions, return them as values, and store them in data structures. But what kind of data type is a function? It’s a type