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.