One of the things we tend to do in OOP is to create types to define behaviours. However, types are best used to describe data, i.e. objects. We've had to use types in the past because of language limitations.
This is a small description of how we can use the power of functions to define code in a way that is easier to read, maintain and test.