Using a Writer

As we explore the lambda expression, we'll need to prepend C functions
to the top of the file. The Writer monad is the perfect match: it allows
us to "output" lines of text as we go, gathering the outputs of all the
subcalls.