Aimed at programmers with some Scala experience that are interested in pure functional programming using the Cats library. The talk begins with an introduction to type classes and how they are implemented in Scala. Next we will look at Show, Functor, Monad and finally the Comonad type class, and finally some practical examples of how you can use Comonads in your own programs.