A Library of Morphisms: Monoids, Functors, and Monads