This document provides a primer on category theory and Haskell. It begins with an introduction to category theory, covering basic concepts like objects, arrows, commutative diagrams, and properties such as composition. It then defines injectivity and surjectivity from a category theory perspective. Next, it gives an overview of Haskell, including basic syntax, lazy evaluation, and ideas like currying, functors, monoids, and monads. The document concludes that Haskell draws inspiration from category theory, with concepts like functors, monoids and monads having analogous definitions in both fields. Understanding category theory can provide insight into Haskell, though it is not necessarily a prerequisite for using the language.