Summary
In this chapter, we expanded our repertoire of type constructor classes. We studied a generalization of the list map function to another type of constructor, which is known as a functor. Next, we introduced a generalization of zipping, which is particularly useful for modeling a large range of different kinds of computational effects: applicative functors. Finally, we covered a generalization of mapping with pure functions to mapping with effectful functions, which is supported by the so-called traversable functors.
Chapter 11, Monads, continues with modeling effectful computations using type constructor classes. It introduces perhaps the main concept that Haskell is famous for: monads. These monads characterize a particular subset of applicative functors that are particularly flexible and general for effectful computations.