We are probably already familiar with the concept of patterns from object-oriented programming. Patterns are common solutions to common problems. Whenever you have a problem that repeats from project to project, solutions also tend to repeat. Similar problems are solved similarly. And hence, such solutions become patterns that are widely accepted.
Functional programming also has its own patterns. Since it has certain problems and challenges unique to it, it will also have unique solutions. In this chapter, we will discuss solutions to common functional programming problems.
In this chapter, we will cover the following topics:
- Monad Transformers
- Tagless Final
- Type-level programming