In this chapter, we covered many features of Arrow that give us tools to create, generate, and enrich existing functions. We composed new functions using existing ones; we included partial application and currying. We also cached results of pure functions with memoization and modified data structures using lenses.
Arrow's features open up the possibility of creating rich and maintainable applications, using basic functional principles.
In the next chapter, we'll cover more Arrow features, including datatypes such as Option, Either, and Try.