Summary
This chapter reviewed patterns of kind abstraction. In doing so, we encountered the key ways in which the kind-system has been extended since Haskell 98.
We started with associated type synonyms, which we then placed in the broader context of type families. Next, we explored kind polymorphism and type promotion and found that these kind-system enrichments together raise Haskell to a capable type-level programming language.
As the kind system becomes more powerful, the line between type and term-level programming becomes fainter. Yet, we saw that kinds remain second-class citizens of Haskell.
We concluded with a discussion of dependently-typed programming and how the Haskell language continues to reach more deeply into this paradigm.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access