Christopher Alexander, the father of design patterns in architecture, describes a pattern as a solution "you can use a million times over, without ever doing it the same way twice". In our case, we've looked at high level design patterns to lower level idioms and everything in between.
This book has been the story of modern Haskell through the lens of patterns. We saw that Haskell is evolving along several fronts:
libraries that deal with specific domains for example Iteratee Streaming IO libraries, Foldable, Traversable, the Lens library
type system language extensions, for example, Rank-n types, existential and phantom types, GADTs, functional dependencies
Generic programming techniques: from template meta-programming to Origami datatype generic programming
the kind system language extensions: type functions, kind polymorphism, type promotion
As this evolution occurs, the real gems that are being forged are the underlying idioms and patterns, because they will ultimately outlast the...