Summary
In this chapter, we studied how custom monads, which combine several effects, can be assembled using monad transformers. These transformers augment a monad with the specified functionality, typically of an additional effect.
Chapter 13, Domain-Specific Languages, starts the final part of this book. We will move on from studying Haskell’s hierarchy of type constructor classes and focus our attention on application-oriented aspects. The first topic, which we studied in this chapter, is a language-oriented approach to problem-solving. By creating a new language tailored to a particular problem domain, we can more easily solve problems in that domain.