This chapter started with a high-level discussion of the patterns of generic programming.
In the remainder of the chapter, we explored three variations of datatype-generic programming, that is, three techniques of parameterizing generic functions by data shape rather than by contents.
Underlying these varied approaches were some common threads:
Typeable
instances in the process of writing generic functions)Generic Programming relies on extensions to the Haskell Type system. In the following Chapter 7, Patterns of Kind Abstraction we will see that we can raise the level of abstraction even further via extensions to the Kind system!