\section{Motivation}
Oft betrachtet man allgemeine algebraische Strukturen und trifft Aussagen über diese.
Die konkrete algebraische Struktur ist dabei häufig nicht relevant. So gibt es zum Beispiel Strukturen wie 
Homomorphismen als Gruppenhomomorphismen, Ringhomomorphismen, Lineare Abbildungen oder stetige Abbildungen.
Auch den Homomorphiesatz gibt es zum Beispiel für Gruppen und Vektorräume und Produkte sind auch für einige algebraische Strukturen definiert.\\
Es kann sich also durchaus lohnen ein \glqq Template'' zu entwickeln, das in der Lage ist diese Strukturen im allgemeinen zu 
betrachten ohne dabei auf konkrete Instanzen zu achten.\\
Die Kategorientheorie bietet ein solches Werkzeug. Sie ist dabei omnipräsent in der algebraischen Geometrie und ist die Sprache der algebraischen
Topologie. Auch einige Konzepte der funktionalen Programmierung sind tief in den Konzepten der Kategorientheorie verwurzelt.
