As many other PhD-students in Computer Science, when faced with the task of writing a thesis, from time to time I was too occupied with considering the tools at hand, ignoring the more important issue of the actual content of the thesis. Should one use FrameMaker, LaTeX, or what?
I decided to turn Haskell, my favorite programming language at that time, into a domain specific programming language for formatting text documents. One goal was to have a document preparation system which was more orthogonal than LaTeX, so that different features were easy to combine. As a bonus, I could write the thesis without giving up functional programming.
In my talk, I will present the result (developed together with Thomas Hallgren), HacWrite, which consists of a preprocessor and a library of markup combinators and back-ends for producing HTML and LaTeX.