lhs2TeX is a preprocessor to generate LaTeX code from literate
Haskell sources. It is released under the GPL.

lhs2TeX includes the following features:

Different styles to process your source file: for instance,
"tt" style uses a monospaced font for the code
while still allowing you to highlight keywords etc, whereas
"poly" style uses proportional fonts for identifiers, handles
indentation nicely, is able to replace binary operators by
mathematical symbols and take care of complex horizontal
alignments.

Formatting directives, which let you customize the way certain
tokens in the source code should appear in the processed
output.

A liberal parser that can handle most of the language
extensions; you don't have to restrict yourself to Haskell 98.

Preprocessor-style conditionals that allow you to generate
different versions of a document from a single source file
(for instance, a paper and a presentation).

Active documents: you can use Haskell to generate parts of the
document (useful for papers on Haskell).

A manual explaining all the important aspects of lhs2TeX.

Current release: Version 1.18.1 (September 08, 2012)

This version should work properly with ghc-7.6. It also fixes a bug that
causes a build-time failure for lhs2tex-1.18.