Functors, Natural Transformations, Monads, Type Theory, Abstract Algebra, Monoids, Algebraic Structures, Mathematical Structures