In the previous chapter, we got to know Functors, an abstraction that gives the map method the effects defined in the standard library. Looking back at Chapter 6, Exploring Built-In Effects, there is still something missing here—the source of the flatMap method, which all standard effects also have.
In this chapter, we will finally meet the concept of a monad, the structure that defines flatMap. To learn about this function inside and out, we'll implement four different monads.
By the end of this chapter, you'll be familiar with the following topics:
- Abstracting a monad and its properties
- Implementing monads for standard effects
- The implementation and applicability of the following basic monads:
- Id
- State
- Reader
- Writer