and thought, “Shenanigans! Why not just have this?” Me too! I only learned of this solution relatively recently, and I know experienced Haskellers who also only understood this recently or still don’t. Hence this quick write up. Here’s the thought process. We’re writing a trivial pretty printer and we’re using Writer. We write things like: