#MOC # Category Theory In computer science, category theory often comes up when dealing with [[Magma]]-s, the most common of which are the [[Monoid]] and the [[Monad]]. Other category theory types worth mentioning are the [[Covariant Functor]], [[Bifunctor]], [[Profunctor]], [[Contravariant Functor]], and [[Applicative Functor]]. ![[FSharpPlus#Abstractions Diagram]] ## Definition Category theory is **a branch of mathematics that aims to to generalize all of mathematics into [[Category]]-ies, which are made up of a class of objects and a class of [[Morphism]]-s**. ![[Category Theory - Wikipedia#^qp7cz1]] Mark Seemann: ![[From Design Patterns to Category Theory#^9dk84j]] ![[From Design Patterns to Category Theory#^8hzxnf]] Some argue category theory is a branch of abstract algebra or that it intersects with it, leading me to conclude that the exact classification does not exist. I'm thus lumping it together, as that makes the most sense in my head.