In the previous chapter, we discussed the idea of the type class and how type classes are a methodology for decoupling data from behavior. We have also seen how type classes can be treated as toolboxes that abstract away certain behavior. In essence, to a functional programmer, they are what a workshop is to a carpenter.
In the previous chapters, we also saw how type classes are motivated based on the practical needs that arise during functional programming. In this chapter, we will see how an entire library of classes for functional programming arise from practical needs. We'll take a look at one such library, and we will see how typical libraries are structured and how they can be used in practice.
The following are the topics that we will be covering in this chapter:
- A motivation for organizing type classes into systems and libraries...