In this chapter, we learned how to use tooling to solve issues that arise in Go because of its lack of support for generics. We were able to use this tooling to generate underscore like features in our Go code by starting with properly defined base types. With no more worries about potential generics support slowing down our runtime executables (as is the case with Java), we jumped for joy with an unexpected productivity boost.
We continued forward into the land of pure FP, where we tackled the concept of function composition. With g.f(x) == g(f(x)) in our tool belt, we studied functors and learned how to transform lists of items. We chained our maps and even learned how attorneys can use the forgetful functor to win cases in court for their clients.
We wrapped up the chapter with monoids. We not only learned the algebraic laws of monoids, but we implemented them...