This must be the hello world of free monads.