This post is an introduction into how operators are implemented in Cats and has been originally published in August 2015. Some more details can be found in the previous post. One of the simplest and most recognizable type classes is the semigroup. This type class abstracts over the ability to combine values of a certain type in an associative manner. What does associativity mean? We call an operation $\oplus$ associative, if for all $a$, $b$ and $c$, $a \oplus (b \oplus c) = (a \oplus b) \opl...