This appendix has taken you on a brief tour of the world of category theory. You learned about three of its abstractions—functors, applicative functors, and monads. They are the guiding principles behind the imminent API.
To deepen your knowledge and understanding, we implemented our own option monad—a common abstraction used to safely handle the absence of values.
You also saw that using these abstractions allows us to make some assumptions about our code, as seen in functions such as alift. There are many other functions that we would normally rewrite over and over again for different purposes, but that can be reused if we recognize that our code fits into one of the abstractions that were covered.
Finally, we hope that this encourages you to explore category theory more, as it will undoubtedly change the way that you think. And, if we can be so bold, we...