This is rather silly.
At the Melbourne Haskell user group's November gathering, we drew christmas trees.
How can you draw a christmas tree in a way that maximises learning? For me, I decided I clearly had to write a christmas-tree generation monad. app/Main.hs is pretty much the only file that matters.
I found http://programmers.stackexchange.com/questions/242795/what-is-the-free-monad-interpreter-pattern to be indispensable when working out how to use Free to do what I wanted.