Free vs tagless final

Example code and slides showing how to implement a hypothetical photo storage service in a couple of different ways: using the (cats) Free monad and using "tagless final" style.

To view the slides

sbt console

and then

scala> :load presentation.txt

and then n <enter> to proceed through the slides. p <enter> to go back.

Credit

The slides are built using the excellent REPLesent.