Monoids, Monads, and Applicative Functors: Repeated Software Patterns - David Sankel - CppCon 2020