Let's live-code an effect system in Scala. We'll begin by describing an effectful program that we would like to write as a pure value. Then we will write a toy effect system to be able to run it. For our effect system, we will choose from monad transformers, free monads, tagless final, or reader monads.
