Using State monad to create a lift-a-like template engine.