diff --git a/HsColour.hs b/HsColour.hs
--- a/HsColour.hs
+++ b/HsColour.hs
@@ -10,7 +10,7 @@
 import List  (intersperse, isSuffixOf)
 import Debug.Trace
 
-version = "1.14"
+version = "1.15"
 
 optionTable :: [(String,Option)]
 optionTable = [ ("help",    Help)
diff --git a/Language/Haskell/HsColour.hs b/Language/Haskell/HsColour.hs
--- a/Language/Haskell/HsColour.hs
+++ b/Language/Haskell/HsColour.hs
@@ -38,27 +38,39 @@
          -> String      -- ^ Haskell source code.
          -> String      -- ^ Coloured Haskell source code.
 hscolour output pref anchor partial title False =
-        hscolour' output pref anchor partial title
+        (if partial then id else top'n'tail output title) .
+        hscolour' output pref anchor
 hscolour output pref anchor partial title True  =
+        (if partial then id else top'n'tail output title) .
         concatMap chunk . joinL . classify . inlines
   where
-    chunk (Code c) = hscolour' output pref anchor True title c
+    chunk (Code c) = hscolour' output pref anchor c
     chunk (Lit c)  = c
 
+-- | The actual colourising worker, despatched on the chosen output format.
 hscolour' :: Output      -- ^ Output format.
           -> ColourPrefs -- ^ Colour preferences (for formats that support them)
           -> Bool        -- ^ Whether to include anchors.
-          -> Bool        -- ^ Whether output document is partial or complete.
-          -> String      -- ^ Title for output.
           -> String      -- ^ Haskell source code.
           -> String      -- ^ Coloured Haskell source code.
-hscolour' TTY   pref _    _       _   = TTY.hscolour   pref
-hscolour' MIRC  pref _    _       _   = MIRC.hscolour  pref
-hscolour' LaTeX pref _    partial _   = LaTeX.hscolour pref      partial
-hscolour' HTML  pref anch partial top = HTML.hscolour  pref anch partial top
-hscolour' CSS   _    anch partial top = CSS.hscolour        anch partial top
-hscolour' ICSS  pref anch partial top = ICSS.hscolour  pref anch partial top
+hscolour' TTY   pref _      = TTY.hscolour   pref
+hscolour' MIRC  pref _      = MIRC.hscolour  pref
+hscolour' LaTeX pref _      = LaTeX.hscolour pref
+hscolour' HTML  pref anchor = HTML.hscolour  pref anchor
+hscolour' CSS   _    anchor = CSS.hscolour        anchor
+hscolour' ICSS  pref anchor = ICSS.hscolour  pref anchor
 
+-- | Choose the right headers\/footers, depending on the output format.
+top'n'tail :: Output           -- ^ Output format
+           -> String           -- ^ Title for output
+           -> (String->String) -- ^ Output transformer
+top'n'tail TTY   _     = id
+top'n'tail MIRC  _     = id
+top'n'tail LaTeX title = LaTeX.top'n'tail title
+top'n'tail HTML  title = HTML.top'n'tail title
+top'n'tail CSS   title = CSS.top'n'tail  title
+top'n'tail ICSS  title = ICSS.top'n'tail title
+
 -- | Separating literate files into code\/comment chunks.
 data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show)
 
@@ -75,7 +87,7 @@
   lines' (c:s)          acc = lines' s (acc . (c:))
 
 
--- The code for classify is largely stolen from Language.Preprocessor.Unlit.
+-- | The code for classify is largely stolen from Language.Preprocessor.Unlit.
 classify []             = []
 classify (x:xs) | "\\begin{code}"`isPrefixOf`x
                         = Lit x: allProg xs
@@ -87,7 +99,7 @@
 classify (('>':x):xs)   = Code ('>':x) : classify xs
 classify (x:xs)         = Lit x: classify xs
 
--- Join up chunks of code/comment that are next to each other.
+-- | Join up chunks of code\/comment that are next to each other.
 joinL :: [Lit] -> [Lit]
 joinL []                  = []
 joinL (Code c:Code c2:xs) = joinL (Code (c++c2):xs)
diff --git a/Language/Haskell/HsColour/CSS.hs b/Language/Haskell/HsColour/CSS.hs
--- a/Language/Haskell/HsColour/CSS.hs
+++ b/Language/Haskell/HsColour/CSS.hs
@@ -1,5 +1,5 @@
 -- | Formats Haskell source code as HTML with CSS.
-module Language.Haskell.HsColour.CSS (hscolour) where
+module Language.Haskell.HsColour.CSS (hscolour,top'n'tail) where
 
 import Language.Haskell.HsColour.Anchors
 import Language.Haskell.HsColour.Classify as Classify
@@ -8,15 +8,11 @@
 
 -- | Formats Haskell source code as a complete HTML document with CSS.
 hscolour :: Bool   -- ^ Whether to include anchors.
-         -> Bool   -- ^ Whether output should be partial
-                   --   (= no stylesheet link will be included.)
-         -> String -- ^ Title for HTML page.
          -> String -- ^ Haskell source code.
          -> String -- ^ An HTML document containing the coloured 
                    --   Haskell source code.
-hscolour anchor partial title =
-  (if partial then id else top'n'tail title)
-  . pre
+hscolour anchor =
+  pre
   . (if anchor 
         then renderNewLinesAnchors
              . concatMap (renderAnchors renderToken)
diff --git a/Language/Haskell/HsColour/HTML.hs b/Language/Haskell/HsColour/HTML.hs
--- a/Language/Haskell/HsColour/HTML.hs
+++ b/Language/Haskell/HsColour/HTML.hs
@@ -1,8 +1,10 @@
 -- | Formats Haskell source code using HTML with font tags.
 module Language.Haskell.HsColour.HTML 
-    (hscolour, 
+    ( hscolour
+    , top'n'tail
      -- * Internals
-     renderAnchors, renderComment, renderNewLinesAnchors, escape) where
+    , renderAnchors, renderComment, renderNewLinesAnchors, escape
+    ) where
 
 import Language.Haskell.HsColour.Anchors
 import Language.Haskell.HsColour.Classify as Classify
@@ -14,13 +16,10 @@
 -- | Formats Haskell source code using HTML with font tags.
 hscolour :: ColourPrefs -- ^ Colour preferences.
          -> Bool        -- ^ Whether to include anchors.
-         -> Bool        -- ^ Whether output should be partial.
-         -> String      -- ^ Title for webpage output.
          -> String      -- ^ Haskell source code.
          -> String      -- ^ Coloured Haskell source code.
-hscolour pref anchor partial title = 
-    (if partial then id else top'n'tail title)
-    . pre
+hscolour pref anchor = 
+    pre
     . (if anchor then renderNewLinesAnchors
                       . concatMap (renderAnchors (renderToken pref))
                       . insertAnchors
diff --git a/Language/Haskell/HsColour/InlineCSS.hs b/Language/Haskell/HsColour/InlineCSS.hs
--- a/Language/Haskell/HsColour/InlineCSS.hs
+++ b/Language/Haskell/HsColour/InlineCSS.hs
@@ -1,5 +1,5 @@
 -- | Formats Haskell source code as HTML with inline CSS.
-module Language.Haskell.HsColour.InlineCSS (hscolour) where
+module Language.Haskell.HsColour.InlineCSS (hscolour,top'n'tail) where
 
 import Language.Haskell.HsColour.Anchors
 import Language.Haskell.HsColour.Classify as Classify
@@ -10,15 +10,11 @@
 -- | Formats Haskell source code as a complete HTML document with inline styling
 hscolour :: ColourPrefs	-- ^ Preferences for styling.
          -> Bool   -- ^ Whether to include anchors.
-         -> Bool   -- ^ Whether output should be partial
-                   --   (= no document headers will be included.)
-         -> String -- ^ Title for HTML page.
          -> String -- ^ Haskell source code.
          -> String -- ^ An HTML document containing the coloured 
                    --   Haskell source code.
-hscolour prefs anchor partial title =
-  (if partial then id else top'n'tail title)
-  . pre
+hscolour prefs anchor =
+  pre
   . (if anchor 
         then renderNewLinesAnchors
              . concatMap (renderAnchors (renderToken prefs))
diff --git a/Language/Haskell/HsColour/LaTeX.hs b/Language/Haskell/HsColour/LaTeX.hs
--- a/Language/Haskell/HsColour/LaTeX.hs
+++ b/Language/Haskell/HsColour/LaTeX.hs
@@ -1,5 +1,5 @@
 -- | Formats Haskell source code using LaTeX macros.
-module Language.Haskell.HsColour.LaTeX (hscolour) where
+module Language.Haskell.HsColour.LaTeX (hscolour, top'n'tail) where
 
 import Language.Haskell.HsColour.Classify as Classify
 import Language.Haskell.HsColour.Colourise
@@ -7,17 +7,13 @@
 
 -- | Formats Haskell source code as a complete LaTeX document.
 hscolour :: ColourPrefs -- ^ Colour preferences.
-         -> Bool        -- ^ Whether output should be partial (= no prologue).
          -> String      -- ^ Haskell source code.
          -> String      -- ^ A LaTeX document\/fragment containing the coloured 
                         --   Haskell source code.
-hscolour pref partial =
-  ( if partial then id else top'n'tail)
-  . concatMap (renderToken pref)
-  . tokenise
+hscolour pref = concatMap (renderToken pref) . tokenise
 
-top'n'tail :: String -> String
-top'n'tail  = (latexPrefix++) . (++latexSuffix)
+top'n'tail :: String -> String -> String
+top'n'tail title = (latexPrefix title++) . (++latexSuffix)
 
 -- | Wrap each lexeme in the appropriate LaTeX macro.
 --   TODO: filter dangerous characters like "{}_$"
@@ -88,7 +84,7 @@
 latexColour White   = "white"
 
 -- | Generic LaTeX document preamble.
-latexPrefix = unlines
+latexPrefix title = unlines
     ["\\documentclass[a4paper, 12pt]{article}"
     ,"\\usepackage[usenames]{color}"
     ,"\\usepackage{hyperref}"
@@ -99,7 +95,10 @@
     ,"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"
     ,"\\newcommand{\\hstab}{\\usebox{\\tabb}}"
     ,"\\newcommand{\\conceal}[1]{}"
+    ,"\\title{"++title++"}"
+    ,"%% Generated by HsColour"
     ,"\\begin{document}"
+    ,"\\maketitle"
     ,"\\noindent"
     ]
 
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 LIBRARY	= hscolour
-VERSION	= 1.14
+VERSION	= 1.15
 
 DIRS	= Language/Haskell/HsColour
 
diff --git a/README b/README
--- a/README
+++ b/README
@@ -30,15 +30,17 @@
 classes).  This enables you to make links to a specific location in the
 generated file with the standard "file.html#anchor" notation.
 
-If you want to embed several individually colourised fragments into a
-larger document, then use the <tt>-partial</tt> option , to omit the
-HTML DOCTYPE header, CSS stylesheet link, or LaTeX prologue.
+If an input file is literate, that is, it has a suffix ".lhs" or ".ly"
+or ".lx", then only the code fragments will be colourised, leaving the
+commentary untouched.  You can explicitly override this
+filename-guessing of literate status: use the -lit option to
+force literate colouring, or -nolit to force all text to be
+colourised.  (-lit-tex is an obsolete synonym for -lit)
 
-Alternatively, if you have a literate input source (e.g. .lhs file),
-then the -lit option passes the literate parts untouched,
-and colourises only the code fragments as if each was called
-individually with -partial.  The option -lit-tex is identical: it is
-retained for backwards-compatibility only.
+For more advanced usage, if you are building documents in parts, and you
+want to embed several individually colourised fragments into a larger
+document, use the <tt>-partial</tt> option with each fragment, to omit
+the HTML DOCTYPE header, CSS stylesheet link, or LaTeX prologue.
 
 You can configure the colours for different lexical entities by
 editing a configuration file called .hscolour in the current directory.
diff --git a/docs/hscolour/Language-Haskell-HsColour-CSS.html b/docs/hscolour/Language-Haskell-HsColour-CSS.html
--- a/docs/hscolour/Language-Haskell-HsColour-CSS.html
+++ b/docs/hscolour/Language-Haskell-HsColour-CSS.html
@@ -90,8 +90,18 @@
 ><TD CLASS="decl"
 ><A HREF="#v%3Ahscolour"
 >hscolour</A
-> :: Bool -&gt; Bool -&gt; String -&gt; String -&gt; String</TD
+> :: Bool -&gt; String -&gt; String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atop%27n%27tail"
+>top'n'tail</A
+> :: String -&gt; String -&gt; String</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -137,23 +147,8 @@
 ></TR
 ><TR
 ><TD CLASS="arg"
->-&gt; Bool</TD
-><TD CLASS="rdoc"
->Whether output should be partial
-   (= no stylesheet link will be included.)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
 >-&gt; String</TD
 ><TD CLASS="rdoc"
->Title for HTML page.
-</TD
-></TR
-><TR
-><TD CLASS="arg"
->-&gt; String</TD
-><TD CLASS="rdoc"
 >Haskell source code.
 </TD
 ></TR
@@ -169,6 +164,28 @@
 ><TD CLASS="ndoc" COLSPAN="2"
 >Formats Haskell source code as a complete HTML document with CSS.
 </TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atop%27n%27tail"
+></A
+><B
+>top'n'tail</B
+> :: String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/CSS.html#top%27n%27tail"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/docs/hscolour/Language-Haskell-HsColour-HTML.html b/docs/hscolour/Language-Haskell-HsColour-HTML.html
--- a/docs/hscolour/Language-Haskell-HsColour-HTML.html
+++ b/docs/hscolour/Language-Haskell-HsColour-HTML.html
@@ -109,7 +109,7 @@
 >hscolour</A
 > :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
 >ColourPrefs</A
-> -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; String</TD
+> -&gt; Bool -&gt; String -&gt; String</TD
 ></TR
 ><TR
 ><TD CLASS="s8"
@@ -117,6 +117,16 @@
 ></TR
 ><TR
 ><TD CLASS="decl"
+><A HREF="#v%3Atop%27n%27tail"
+>top'n'tail</A
+> :: String -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
 ><A HREF="#v%3ArenderAnchors"
 >renderAnchors</A
 > :: ((<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
@@ -199,22 +209,8 @@
 ></TR
 ><TR
 ><TD CLASS="arg"
->-&gt; Bool</TD
-><TD CLASS="rdoc"
->Whether output should be partial.
-</TD
-></TR
-><TR
-><TD CLASS="arg"
 >-&gt; String</TD
 ><TD CLASS="rdoc"
->Title for webpage output.
-</TD
-></TR
-><TR
-><TD CLASS="arg"
->-&gt; String</TD
-><TD CLASS="rdoc"
 >Haskell source code.
 </TD
 ></TR
@@ -229,6 +225,28 @@
 ><TD CLASS="ndoc" COLSPAN="2"
 >Formats Haskell source code using HTML with font tags.
 </TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atop%27n%27tail"
+></A
+><B
+>top'n'tail</B
+> :: String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/HTML.html#top%27n%27tail"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/docs/hscolour/Language-Haskell-HsColour-InlineCSS.html b/docs/hscolour/Language-Haskell-HsColour-InlineCSS.html
--- a/docs/hscolour/Language-Haskell-HsColour-InlineCSS.html
+++ b/docs/hscolour/Language-Haskell-HsColour-InlineCSS.html
@@ -92,8 +92,18 @@
 >hscolour</A
 > :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
 >ColourPrefs</A
-> -&gt; Bool -&gt; Bool -&gt; String -&gt; String -&gt; String</TD
+> -&gt; Bool -&gt; String -&gt; String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atop%27n%27tail"
+>top'n'tail</A
+> :: String -&gt; String -&gt; String</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -148,23 +158,8 @@
 ></TR
 ><TR
 ><TD CLASS="arg"
->-&gt; Bool</TD
-><TD CLASS="rdoc"
->Whether output should be partial
-   (= no document headers will be included.)
-</TD
-></TR
-><TR
-><TD CLASS="arg"
 >-&gt; String</TD
 ><TD CLASS="rdoc"
->Title for HTML page.
-</TD
-></TR
-><TR
-><TD CLASS="arg"
->-&gt; String</TD
-><TD CLASS="rdoc"
 >Haskell source code.
 </TD
 ></TR
@@ -180,6 +175,28 @@
 ><TD CLASS="ndoc" COLSPAN="2"
 >Formats Haskell source code as a complete HTML document with inline styling
 </TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atop%27n%27tail"
+></A
+><B
+>top'n'tail</B
+> :: String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/InlineCSS.html#top%27n%27tail"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/docs/hscolour/Language-Haskell-HsColour-LaTeX.html b/docs/hscolour/Language-Haskell-HsColour-LaTeX.html
--- a/docs/hscolour/Language-Haskell-HsColour-LaTeX.html
+++ b/docs/hscolour/Language-Haskell-HsColour-LaTeX.html
@@ -92,8 +92,18 @@
 >hscolour</A
 > :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
 >ColourPrefs</A
-> -&gt; Bool -&gt; String -&gt; String</TD
+> -&gt; String -&gt; String</TD
 ></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Atop%27n%27tail"
+>top'n'tail</A
+> :: String -&gt; String -&gt; String</TD
+></TR
 ></TABLE
 ></TD
 ></TR
@@ -141,13 +151,6 @@
 ></TR
 ><TR
 ><TD CLASS="arg"
->-&gt; Bool</TD
-><TD CLASS="rdoc"
->Whether output should be partial (= no prologue).
-</TD
-></TR
-><TR
-><TD CLASS="arg"
 >-&gt; String</TD
 ><TD CLASS="rdoc"
 >Haskell source code.
@@ -165,6 +168,28 @@
 ><TD CLASS="ndoc" COLSPAN="2"
 >Formats Haskell source code as a complete LaTeX document.
 </TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Atop%27n%27tail"
+></A
+><B
+>top'n'tail</B
+> :: String -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/LaTeX.html#top%27n%27tail"
+>Source</A
+></TD
 ></TR
 ></TABLE
 ></TD
diff --git a/docs/hscolour/Language/Haskell/HsColour.html b/docs/hscolour/Language/Haskell/HsColour.html
--- a/docs/hscolour/Language/Haskell/HsColour.html
+++ b/docs/hscolour/Language/Haskell/HsColour.html
@@ -45,62 +45,74 @@
 <a name="line-38"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
 <a name="line-39"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
 <a name="line-40"></a>hscolour output pref anchor partial title False <font color=Red>=</font>
-<a name="line-41"></a>        hscolour' output pref anchor partial title
-<a name="line-42"></a>hscolour output pref anchor partial title True  <font color=Red>=</font>
-<a name="line-43"></a>        concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> classify <font color=Cyan>.</font> inlines
-<a name="line-44"></a>  <u><font color=Green>where</font></u>
-<a name="line-45"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font> <font color=Red>=</font> hscolour' output pref anchor True title c
-<a name="line-46"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>  <font color=Red>=</font> c
-<a name="line-47"></a>
-<a name="line-48"></a><a name="hscolour'"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>
-<a name="line-49"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them)</font>
-<a name="line-50"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>
-<a name="line-51"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output document is partial or complete.</font>
-<a name="line-52"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for output.</font>
-<a name="line-53"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
-<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
-<a name="line-55"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour   pref
-<a name="line-56"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>    <u><font color=Green>_</font></u>       <u><font color=Green>_</font></u>   <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour  pref
-<a name="line-57"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>    partial <u><font color=Green>_</font></u>   <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref      partial
-<a name="line-58"></a>hscolour' HTML  pref anch partial top <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour  pref anch partial top
-<a name="line-59"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anch partial top <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour        anch partial top
-<a name="line-60"></a>hscolour' ICSS  pref anch partial top <font color=Red>=</font> ICSS<font color=Cyan>.</font>hscolour  pref anch partial top
-<a name="line-61"></a>
-<a name="line-62"></a><a name="Lit"></a><font color=Blue>-- | Separating literate files into code\/comment chunks.</font>
-<a name="line-63"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>
-<a name="line-64"></a>
-<a name="line-65"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>
-<a name="line-66"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>
-<a name="line-67"></a><font color=Blue>-- And retains the trailing '\n' character in each resultant string.</font>
-<a name="line-68"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>
-<a name="line-69"></a>inlines s <font color=Red>=</font> lines' s id
-<a name="line-70"></a>  <u><font color=Green>where</font></u>
-<a name="line-71"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>
-<a name="line-72"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- DOS</font>
-<a name="line-73"></a><font color=Blue>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</font>
-<a name="line-74"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- Unix</font>
-<a name="line-75"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-41"></a>        <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail output title<font color=Cyan>)</font> <font color=Cyan>.</font>
+<a name="line-42"></a>        hscolour' output pref anchor
+<a name="line-43"></a>hscolour output pref anchor partial title True  <font color=Red>=</font>
+<a name="line-44"></a>        <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail output title<font color=Cyan>)</font> <font color=Cyan>.</font>
+<a name="line-45"></a>        concatMap chunk <font color=Cyan>.</font> joinL <font color=Cyan>.</font> classify <font color=Cyan>.</font> inlines
+<a name="line-46"></a>  <u><font color=Green>where</font></u>
+<a name="line-47"></a>    chunk <font color=Cyan>(</font>Code c<font color=Cyan>)</font> <font color=Red>=</font> hscolour' output pref anchor c
+<a name="line-48"></a>    chunk <font color=Cyan>(</font>Lit c<font color=Cyan>)</font>  <font color=Red>=</font> c
+<a name="line-49"></a>
+<a name="line-50"></a><a name="hscolour'"></a><font color=Blue>-- | The actual colourising worker, despatched on the chosen output format.</font>
+<a name="line-51"></a>hscolour' <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>
+<a name="line-52"></a>          <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences (for formats that support them)</font>
+<a name="line-53"></a>          <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>
+<a name="line-54"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
+<a name="line-55"></a>          <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
+<a name="line-56"></a>hscolour' TTY   pref <u><font color=Green>_</font></u>      <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour   pref
+<a name="line-57"></a>hscolour' MIRC  pref <u><font color=Green>_</font></u>      <font color=Red>=</font> MIRC<font color=Cyan>.</font>hscolour  pref
+<a name="line-58"></a>hscolour' LaTeX pref <u><font color=Green>_</font></u>      <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref
+<a name="line-59"></a>hscolour' HTML  pref anchor <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour  pref anchor
+<a name="line-60"></a>hscolour' CSS   <u><font color=Green>_</font></u>    anchor <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour        anchor
+<a name="line-61"></a>hscolour' ICSS  pref anchor <font color=Red>=</font> ICSS<font color=Cyan>.</font>hscolour  pref anchor
+<a name="line-62"></a>
+<a name="line-63"></a><a name="top'n'tail"></a><font color=Blue>-- | Choose the right headers\/footers, depending on the output format.</font>
+<a name="line-64"></a>top'n'tail <font color=Red>::</font> Output           <font color=Blue>-- ^ Output format</font>
+<a name="line-65"></a>           <font color=Red>-&gt;</font> String           <font color=Blue>-- ^ Title for output</font>
+<a name="line-66"></a>           <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Red>-&gt;</font>String<font color=Cyan>)</font> <font color=Blue>-- ^ Output transformer</font>
+<a name="line-67"></a>top'n'tail TTY   <u><font color=Green>_</font></u>     <font color=Red>=</font> id
+<a name="line-68"></a>top'n'tail MIRC  <u><font color=Green>_</font></u>     <font color=Red>=</font> id
+<a name="line-69"></a>top'n'tail LaTeX title <font color=Red>=</font> LaTeX<font color=Cyan>.</font>top'n'tail title
+<a name="line-70"></a>top'n'tail HTML  title <font color=Red>=</font> HTML<font color=Cyan>.</font>top'n'tail title
+<a name="line-71"></a>top'n'tail CSS   title <font color=Red>=</font> CSS<font color=Cyan>.</font>top'n'tail  title
+<a name="line-72"></a>top'n'tail ICSS  title <font color=Red>=</font> ICSS<font color=Cyan>.</font>top'n'tail title
+<a name="line-73"></a>
+<a name="line-74"></a><a name="Lit"></a><font color=Blue>-- | Separating literate files into code\/comment chunks.</font>
+<a name="line-75"></a><a name="Lit"></a><u><font color=Green>data</font></u> Lit <font color=Red>=</font> Code <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <font color=Red>|</font> Lit <font color=Cyan>{</font>unL <font color=Red>::</font> String<font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Show<font color=Cyan>)</font>
 <a name="line-76"></a>
-<a name="line-77"></a>
-<a name="line-78"></a><a name="classify"></a><font color=Blue>-- The code for classify is largely stolen from Language.Preprocessor.Unlit.</font>
-<a name="line-79"></a>classify []             <font color=Red>=</font> []
-<a name="line-80"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\begin{code}"</font><font color=Cyan>`isPrefixOf`</font>x
-<a name="line-81"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> allProg xs
-<a name="line-82"></a>   <u><font color=Green>where</font></u> allProg []     <font color=Red>=</font> []  <font color=Blue>-- Should give an error message,</font>
-<a name="line-83"></a>                              <font color=Blue>-- but I have no good position information.</font>
-<a name="line-84"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\end{code}"</font><font color=Cyan>`isPrefixOf`</font>x
-<a name="line-85"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs
-<a name="line-86"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> Code x<b><font color=Red>:</font></b> allProg xs
-<a name="line-87"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>   <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font> <b><font color=Red>:</font></b> classify xs
-<a name="line-88"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>         <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs
+<a name="line-77"></a><a name="inlines"></a><font color=Blue>-- Re-implementation of 'lines', for better efficiency (but decreased laziness).</font>
+<a name="line-78"></a><font color=Blue>-- Also, importantly, accepts non-standard DOS and Mac line ending characters.</font>
+<a name="line-79"></a><font color=Blue>-- And retains the trailing '\n' character in each resultant string.</font>
+<a name="line-80"></a>inlines <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>
+<a name="line-81"></a>inlines s <font color=Red>=</font> lines' s id
+<a name="line-82"></a>  <u><font color=Green>where</font></u>
+<a name="line-83"></a>  lines' []             acc <font color=Red>=</font> <font color=Red>[</font>acc []<font color=Red>]</font>
+<a name="line-84"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\^M'</font><b><font color=Red>:</font></b><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- DOS</font>
+<a name="line-85"></a><font color=Blue>--lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS</font>
+<a name="line-86"></a>  lines' <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font>       acc <font color=Red>=</font> acc <font color=Red>[</font><font color=Magenta>'\n'</font><font color=Red>]</font> <b><font color=Red>:</font></b> lines' s id	<font color=Blue>-- Unix</font>
+<a name="line-87"></a>  lines' <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>          acc <font color=Red>=</font> lines' s <font color=Cyan>(</font>acc <font color=Cyan>.</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b><font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-88"></a>
 <a name="line-89"></a>
-<a name="line-90"></a><a name="joinL"></a><font color=Blue>-- Join up chunks of code/comment that are next to each other.</font>
-<a name="line-91"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>
-<a name="line-92"></a>joinL []                  <font color=Red>=</font> []
-<a name="line-93"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>
-<a name="line-94"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>
-<a name="line-95"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs
-<a name="line-96"></a>
+<a name="line-90"></a><a name="classify"></a><font color=Blue>-- | The code for classify is largely stolen from Language.Preprocessor.Unlit.</font>
+<a name="line-91"></a>classify []             <font color=Red>=</font> []
+<a name="line-92"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\begin{code}"</font><font color=Cyan>`isPrefixOf`</font>x
+<a name="line-93"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> allProg xs
+<a name="line-94"></a>   <u><font color=Green>where</font></u> allProg []     <font color=Red>=</font> []  <font color=Blue>-- Should give an error message,</font>
+<a name="line-95"></a>                              <font color=Blue>-- but I have no good position information.</font>
+<a name="line-96"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>|</font> <font color=Magenta>"\\end{code}"</font><font color=Cyan>`isPrefixOf`</font>x
+<a name="line-97"></a>                        <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs
+<a name="line-98"></a>         allProg <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> Code x<b><font color=Red>:</font></b> allProg xs
+<a name="line-99"></a>classify <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>   <font color=Red>=</font> Code <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>x<font color=Cyan>)</font> <b><font color=Red>:</font></b> classify xs
+<a name="line-100"></a>classify <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>         <font color=Red>=</font> Lit x<b><font color=Red>:</font></b> classify xs
+<a name="line-101"></a>
+<a name="line-102"></a><a name="joinL"></a><font color=Blue>-- | Join up chunks of code\/comment that are next to each other.</font>
+<a name="line-103"></a>joinL <font color=Red>::</font> <font color=Red>[</font>Lit<font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Lit<font color=Red>]</font>
+<a name="line-104"></a>joinL []                  <font color=Red>=</font> []
+<a name="line-105"></a>joinL <font color=Cyan>(</font>Code c<b><font color=Red>:</font></b>Code c2<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Code <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>
+<a name="line-106"></a>joinL <font color=Cyan>(</font>Lit c <b><font color=Red>:</font></b>Lit c2 <b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> joinL <font color=Cyan>(</font>Lit  <font color=Cyan>(</font>c<font color=Cyan>++</font>c2<font color=Cyan>)</font><b><font color=Red>:</font></b>xs<font color=Cyan>)</font>
+<a name="line-107"></a>joinL <font color=Cyan>(</font>any<b><font color=Red>:</font></b>xs<font color=Cyan>)</font>            <font color=Red>=</font> any<b><font color=Red>:</font></b> joinL xs
+<a name="line-108"></a>
 </pre>
 </body>
 </html>
diff --git a/docs/hscolour/Language/Haskell/HsColour/CSS.html b/docs/hscolour/Language/Haskell/HsColour/CSS.html
--- a/docs/hscolour/Language/Haskell/HsColour/CSS.html
+++ b/docs/hscolour/Language/Haskell/HsColour/CSS.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code as HTML with CSS.</font>
-<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS <font color=Cyan>(</font>hscolour<font color=Cyan>,</font>top'n'tail<font color=Cyan>)</font> <u><font color=Green>where</font></u>
 <a name="line-3"></a>
 <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
 <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify
@@ -15,69 +15,65 @@
 <a name="line-8"></a>
 <a name="line-9"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete HTML document with CSS.</font>
 <a name="line-10"></a>hscolour <font color=Red>::</font> Bool   <font color=Blue>-- ^ Whether to include anchors.</font>
-<a name="line-11"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether output should be partial</font>
-<a name="line-12"></a>                   <font color=Blue>--   (= no stylesheet link will be included.)</font>
-<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Title for HTML page.</font>
-<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
-<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>
-<a name="line-16"></a>                   <font color=Blue>--   Haskell source code.</font>
-<a name="line-17"></a>hscolour anchor partial title <font color=Red>=</font>
-<a name="line-18"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font>
-<a name="line-19"></a>  <font color=Cyan>.</font> pre
-<a name="line-20"></a>  <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor 
-<a name="line-21"></a>        <u><font color=Green>then</font></u> renderNewLinesAnchors
-<a name="line-22"></a>             <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors renderToken<font color=Cyan>)</font>
-<a name="line-23"></a>             <font color=Cyan>.</font> insertAnchors
-<a name="line-24"></a>        <u><font color=Green>else</font></u> concatMap renderToken<font color=Cyan>)</font>
-<a name="line-25"></a>  <font color=Cyan>.</font> tokenise
-<a name="line-26"></a>
-<a name="line-27"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
-<a name="line-28"></a>top'n'tail title  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>
-<a name="line-29"></a>
-<a name="line-30"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-31"></a>pre <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"&lt;pre&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
-<a name="line-32"></a>
-<a name="line-33"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
-<a name="line-34"></a>renderToken <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>
-<a name="line-35"></a>        before <font color=Cyan>++</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text<font color=Cyan>)</font> <font color=Cyan>++</font> after
-<a name="line-36"></a>    <u><font color=Green>where</font></u>
-<a name="line-37"></a>        before <font color=Red>=</font> <u><font color=Green>if</font></u> null cls2 <u><font color=Green>then</font></u> <font color=Magenta>""</font> <u><font color=Green>else</font></u> <font color=Magenta>"&lt;span class='"</font> <font color=Cyan>++</font> cls2 <font color=Cyan>++</font> <font color=Magenta>"'&gt;"</font>
-<a name="line-38"></a>        after  <font color=Red>=</font> <u><font color=Green>if</font></u> null cls2 <u><font color=Green>then</font></u> <font color=Magenta>""</font> <u><font color=Green>else</font></u> <font color=Magenta>"&lt;/span&gt;"</font>
-<a name="line-39"></a>        cls2 <font color=Red>=</font> cssClass cls
-<a name="line-40"></a>
-<a name="line-41"></a>
-<a name="line-42"></a><a name="cssClass"></a>cssClass Keyword  <font color=Red>=</font> <font color=Magenta>"hs-keyword"</font>
-<a name="line-43"></a>cssClass Keyglyph <font color=Red>=</font> <font color=Magenta>"hs-keyglyph"</font>
-<a name="line-44"></a>cssClass Layout   <font color=Red>=</font> <font color=Magenta>"hs-layout"</font>
-<a name="line-45"></a>cssClass Comment  <font color=Red>=</font> <font color=Magenta>"hs-comment"</font>
-<a name="line-46"></a>cssClass Conid    <font color=Red>=</font> <font color=Magenta>"hs-conid"</font>
-<a name="line-47"></a>cssClass Varid    <font color=Red>=</font> <font color=Magenta>"hs-varid"</font>
-<a name="line-48"></a>cssClass Conop    <font color=Red>=</font> <font color=Magenta>"hs-conop"</font>
-<a name="line-49"></a>cssClass Varop    <font color=Red>=</font> <font color=Magenta>"hs-varop"</font>
-<a name="line-50"></a>cssClass String   <font color=Red>=</font> <font color=Magenta>"hs-str"</font>
-<a name="line-51"></a>cssClass Char     <font color=Red>=</font> <font color=Magenta>"hs-chr"</font>
-<a name="line-52"></a>cssClass Number   <font color=Red>=</font> <font color=Magenta>"hs-num"</font>
-<a name="line-53"></a>cssClass Cpp      <font color=Red>=</font> <font color=Magenta>"hs-cpp"</font>
-<a name="line-54"></a>cssClass Error    <font color=Red>=</font> <font color=Magenta>"hs-sel"</font>
-<a name="line-55"></a>cssClass Definition <font color=Red>=</font> <font color=Magenta>"hs-definition"</font>
-<a name="line-56"></a>cssClass <u><font color=Green>_</font></u>        <font color=Red>=</font> <font color=Magenta>""</font>
-<a name="line-57"></a>
-<a name="line-58"></a>
-<a name="line-59"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines
-<a name="line-60"></a>    <font color=Red>[</font><font color=Magenta>"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"&gt;"</font>
-<a name="line-61"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>
-<a name="line-62"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>
-<a name="line-63"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
-<a name="line-64"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
-<a name="line-65"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;link type='text/css' rel='stylesheet' href='hscolour.css' /&gt;"</font>
-<a name="line-66"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>
-<a name="line-67"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;body&gt;"</font>
-<a name="line-68"></a>    <font color=Red>]</font>
-<a name="line-69"></a>    
-<a name="line-70"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines
-<a name="line-71"></a>    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>
-<a name="line-72"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>
-<a name="line-73"></a>    <font color=Red>]</font>
+<a name="line-11"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
+<a name="line-12"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>
+<a name="line-13"></a>                   <font color=Blue>--   Haskell source code.</font>
+<a name="line-14"></a>hscolour anchor <font color=Red>=</font>
+<a name="line-15"></a>  pre
+<a name="line-16"></a>  <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor 
+<a name="line-17"></a>        <u><font color=Green>then</font></u> renderNewLinesAnchors
+<a name="line-18"></a>             <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors renderToken<font color=Cyan>)</font>
+<a name="line-19"></a>             <font color=Cyan>.</font> insertAnchors
+<a name="line-20"></a>        <u><font color=Green>else</font></u> concatMap renderToken<font color=Cyan>)</font>
+<a name="line-21"></a>  <font color=Cyan>.</font> tokenise
+<a name="line-22"></a>
+<a name="line-23"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+<a name="line-24"></a>top'n'tail title  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>
+<a name="line-25"></a>
+<a name="line-26"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="line-27"></a>pre <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"&lt;pre&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
+<a name="line-28"></a>
+<a name="line-29"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
+<a name="line-30"></a>renderToken <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>
+<a name="line-31"></a>        before <font color=Cyan>++</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text<font color=Cyan>)</font> <font color=Cyan>++</font> after
+<a name="line-32"></a>    <u><font color=Green>where</font></u>
+<a name="line-33"></a>        before <font color=Red>=</font> <u><font color=Green>if</font></u> null cls2 <u><font color=Green>then</font></u> <font color=Magenta>""</font> <u><font color=Green>else</font></u> <font color=Magenta>"&lt;span class='"</font> <font color=Cyan>++</font> cls2 <font color=Cyan>++</font> <font color=Magenta>"'&gt;"</font>
+<a name="line-34"></a>        after  <font color=Red>=</font> <u><font color=Green>if</font></u> null cls2 <u><font color=Green>then</font></u> <font color=Magenta>""</font> <u><font color=Green>else</font></u> <font color=Magenta>"&lt;/span&gt;"</font>
+<a name="line-35"></a>        cls2 <font color=Red>=</font> cssClass cls
+<a name="line-36"></a>
+<a name="line-37"></a>
+<a name="line-38"></a><a name="cssClass"></a>cssClass Keyword  <font color=Red>=</font> <font color=Magenta>"hs-keyword"</font>
+<a name="line-39"></a>cssClass Keyglyph <font color=Red>=</font> <font color=Magenta>"hs-keyglyph"</font>
+<a name="line-40"></a>cssClass Layout   <font color=Red>=</font> <font color=Magenta>"hs-layout"</font>
+<a name="line-41"></a>cssClass Comment  <font color=Red>=</font> <font color=Magenta>"hs-comment"</font>
+<a name="line-42"></a>cssClass Conid    <font color=Red>=</font> <font color=Magenta>"hs-conid"</font>
+<a name="line-43"></a>cssClass Varid    <font color=Red>=</font> <font color=Magenta>"hs-varid"</font>
+<a name="line-44"></a>cssClass Conop    <font color=Red>=</font> <font color=Magenta>"hs-conop"</font>
+<a name="line-45"></a>cssClass Varop    <font color=Red>=</font> <font color=Magenta>"hs-varop"</font>
+<a name="line-46"></a>cssClass String   <font color=Red>=</font> <font color=Magenta>"hs-str"</font>
+<a name="line-47"></a>cssClass Char     <font color=Red>=</font> <font color=Magenta>"hs-chr"</font>
+<a name="line-48"></a>cssClass Number   <font color=Red>=</font> <font color=Magenta>"hs-num"</font>
+<a name="line-49"></a>cssClass Cpp      <font color=Red>=</font> <font color=Magenta>"hs-cpp"</font>
+<a name="line-50"></a>cssClass Error    <font color=Red>=</font> <font color=Magenta>"hs-sel"</font>
+<a name="line-51"></a>cssClass Definition <font color=Red>=</font> <font color=Magenta>"hs-definition"</font>
+<a name="line-52"></a>cssClass <u><font color=Green>_</font></u>        <font color=Red>=</font> <font color=Magenta>""</font>
+<a name="line-53"></a>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines
+<a name="line-56"></a>    <font color=Red>[</font><font color=Magenta>"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"&gt;"</font>
+<a name="line-57"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>
+<a name="line-58"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>
+<a name="line-59"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
+<a name="line-60"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
+<a name="line-61"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;link type='text/css' rel='stylesheet' href='hscolour.css' /&gt;"</font>
+<a name="line-62"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>
+<a name="line-63"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;body&gt;"</font>
+<a name="line-64"></a>    <font color=Red>]</font>
+<a name="line-65"></a>    
+<a name="line-66"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines
+<a name="line-67"></a>    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>
+<a name="line-68"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>
+<a name="line-69"></a>    <font color=Red>]</font>
 </pre>
 </body>
 </html>
diff --git a/docs/hscolour/Language/Haskell/HsColour/HTML.html b/docs/hscolour/Language/Haskell/HsColour/HTML.html
--- a/docs/hscolour/Language/Haskell/HsColour/HTML.html
+++ b/docs/hscolour/Language/Haskell/HsColour/HTML.html
@@ -7,97 +7,96 @@
 <body>
 <pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>
 <a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML 
-<a name="line-3"></a>    <font color=Cyan>(</font>hscolour<font color=Cyan>,</font> 
-<a name="line-4"></a>     <font color=Blue>-- * Internals</font>
-<a name="line-5"></a>     renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> renderNewLinesAnchors<font color=Cyan>,</font> escape<font color=Cyan>)</font> <u><font color=Green>where</font></u>
-<a name="line-6"></a>
-<a name="line-7"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
-<a name="line-8"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify
-<a name="line-9"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
-<a name="line-10"></a>
-<a name="line-11"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font>
+<a name="line-3"></a>    <font color=Cyan>(</font> hscolour
+<a name="line-4"></a>    <font color=Cyan>,</font> top'n'tail
+<a name="line-5"></a>     <font color=Blue>-- * Internals</font>
+<a name="line-6"></a>    <font color=Cyan>,</font> renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> renderNewLinesAnchors<font color=Cyan>,</font> escape
+<a name="line-7"></a>    <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+<a name="line-8"></a>
+<a name="line-9"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
+<a name="line-10"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify
+<a name="line-11"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
 <a name="line-12"></a>
-<a name="line-13"></a>
-<a name="line-14"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>
-<a name="line-15"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>
-<a name="line-16"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>
-<a name="line-17"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial.</font>
-<a name="line-18"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Title for webpage output.</font>
+<a name="line-13"></a><u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font>
+<a name="line-14"></a>
+<a name="line-15"></a>
+<a name="line-16"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>
+<a name="line-17"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>
+<a name="line-18"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>
 <a name="line-19"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
 <a name="line-20"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
-<a name="line-21"></a>hscolour pref anchor partial title <font color=Red>=</font> 
-<a name="line-22"></a>    <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font>
-<a name="line-23"></a>    <font color=Cyan>.</font> pre
-<a name="line-24"></a>    <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor <u><font color=Green>then</font></u> renderNewLinesAnchors
-<a name="line-25"></a>                      <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font>
-<a name="line-26"></a>                      <font color=Cyan>.</font> insertAnchors
-<a name="line-27"></a>                 <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font>
-<a name="line-28"></a>    <font color=Cyan>.</font> tokenise
-<a name="line-29"></a>
-<a name="line-30"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
-<a name="line-31"></a>top'n'tail title <font color=Red>=</font> <font color=Cyan>(</font>htmlHeader title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>htmlClose<font color=Cyan>)</font>
-<a name="line-32"></a>
-<a name="line-33"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-34"></a>pre <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"&lt;pre&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
-<a name="line-35"></a>
-<a name="line-36"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
-<a name="line-37"></a>renderToken pref <font color=Cyan>(</font>t<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> fontify <font color=Cyan>(</font>colourise pref t<font color=Cyan>)</font>
-<a name="line-38"></a>                         <font color=Cyan>(</font><u><font color=Green>if</font></u> t <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment s <u><font color=Green>else</font></u> escape s<font color=Cyan>)</font>
-<a name="line-39"></a>
-<a name="line-40"></a><a name="renderAnchors"></a>renderAnchors <font color=Red>::</font> <font color=Cyan>(</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>-&gt;</font>String<font color=Cyan>)</font>
-<a name="line-41"></a>                 <font color=Red>-&gt;</font> Either String <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
-<a name="line-42"></a>renderAnchors <u><font color=Green>_</font></u>      <font color=Cyan>(</font>Left v<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\""</font><font color=Cyan>++</font>v<font color=Cyan>++</font><font color=Magenta>"\"&gt;&lt;/a&gt;"</font>
-<a name="line-43"></a>renderAnchors render <font color=Cyan>(</font>Right r<font color=Cyan>)</font> <font color=Red>=</font> render r
-<a name="line-44"></a>
-<a name="line-45"></a><a name="renderComment"></a><font color=Blue>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</font>
-<a name="line-46"></a><font color=Blue>-- hyperlinks</font>
-<a name="line-47"></a>renderComment <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-48"></a>renderComment xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'h'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'p'</font><b><font color=Red>:</font></b><font color=Magenta>':'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font>
-<a name="line-49"></a>        renderLink a <font color=Cyan>++</font> renderComment b
-<a name="line-50"></a>    <u><font color=Green>where</font></u>
-<a name="line-51"></a>        <font color=Blue>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></font>
-<a name="line-52"></a>        isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&amp;'()*+,;=-._~%"</font>
-<a name="line-53"></a>        <font color=Cyan>(</font>a<font color=Cyan>,</font>b<font color=Cyan>)</font> <font color=Red>=</font> span isUrlChar xs
-<a name="line-54"></a>        renderLink link <font color=Red>=</font> <font color=Magenta>"&lt;a href=\""</font> <font color=Cyan>++</font> link <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font> escape link <font color=Cyan>++</font> <font color=Magenta>"&lt;/a&gt;"</font>
-<a name="line-55"></a>        
-<a name="line-56"></a>renderComment <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> escape <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>++</font> renderComment xs
-<a name="line-57"></a>renderComment [] <font color=Red>=</font> []
-<a name="line-58"></a>
-<a name="line-59"></a><a name="renderNewLinesAnchors"></a>renderNewLinesAnchors <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-60"></a>renderNewLinesAnchors <font color=Red>=</font> unlines <font color=Cyan>.</font> map render <font color=Cyan>.</font> zip <font color=Red>[</font><font color=Magenta>1</font><font color=Red>..</font><font color=Red>]</font> <font color=Cyan>.</font> lines
-<a name="line-61"></a>    <u><font color=Green>where</font></u> render <font color=Cyan>(</font>line<font color=Cyan>,</font> s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\"line-"</font> <font color=Cyan>++</font> show line <font color=Cyan>++</font> <font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <font color=Cyan>++</font> s
-<a name="line-62"></a>
-<a name="line-63"></a><a name="fontify"></a><font color=Blue>-- Html stuff</font>
-<a name="line-64"></a>fontify [] s     <font color=Red>=</font> s
-<a name="line-65"></a>fontify <font color=Cyan>(</font>h<b><font color=Red>:</font></b>hs<font color=Cyan>)</font> s <font color=Red>=</font> font h <font color=Cyan>(</font>fontify hs s<font color=Cyan>)</font>
-<a name="line-66"></a>
-<a name="line-67"></a><a name="font"></a>font Normal         s <font color=Red>=</font> s
-<a name="line-68"></a>font Bold           s <font color=Red>=</font> <font color=Magenta>"&lt;b&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/b&gt;"</font>
-<a name="line-69"></a>font Dim            s <font color=Red>=</font> <font color=Magenta>"&lt;em&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/em&gt;"</font>
-<a name="line-70"></a>font Underscore     s <font color=Red>=</font> <font color=Magenta>"&lt;u&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/u&gt;"</font>
-<a name="line-71"></a>font Blink          s <font color=Red>=</font> <font color=Magenta>"&lt;blink&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/blink&gt;"</font>
-<a name="line-72"></a>font ReverseVideo   s <font color=Red>=</font> s
-<a name="line-73"></a>font Concealed      s <font color=Red>=</font> s
-<a name="line-74"></a>font <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font color="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font>
-<a name="line-75"></a>font <font color=Cyan>(</font>Background c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font bgcolor="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font>
-<a name="line-76"></a>font Italic         s <font color=Red>=</font> <font color=Magenta>"&lt;i&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/i&gt;"</font>
-<a name="line-77"></a>
-<a name="line-78"></a><a name="escape"></a>escape <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;lt;"</font><font color=Cyan>++</font>escape cs
-<a name="line-79"></a>escape <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;gt;"</font><font color=Cyan>++</font>escape cs
-<a name="line-80"></a>escape <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;amp;"</font><font color=Cyan>++</font>escape cs
-<a name="line-81"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>   <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs
-<a name="line-82"></a>escape []       <font color=Red>=</font> []
-<a name="line-83"></a>
-<a name="line-84"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines
-<a name="line-85"></a>  <font color=Red>[</font> <font color=Magenta>"&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"&gt;"</font>
-<a name="line-86"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;html&gt;"</font>
-<a name="line-87"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;head&gt;"</font>
-<a name="line-88"></a>  <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
-<a name="line-89"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
-<a name="line-90"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;/head&gt;"</font>
-<a name="line-91"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;body&gt;"</font>
-<a name="line-92"></a>  <font color=Red>]</font>
-<a name="line-93"></a><a name="htmlClose"></a>htmlClose  <font color=Red>=</font> <font color=Magenta>"\n&lt;/body&gt;\n&lt;/html&gt;"</font>
+<a name="line-21"></a>hscolour pref anchor <font color=Red>=</font> 
+<a name="line-22"></a>    pre
+<a name="line-23"></a>    <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor <u><font color=Green>then</font></u> renderNewLinesAnchors
+<a name="line-24"></a>                      <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-25"></a>                      <font color=Cyan>.</font> insertAnchors
+<a name="line-26"></a>                 <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-27"></a>    <font color=Cyan>.</font> tokenise
+<a name="line-28"></a>
+<a name="line-29"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+<a name="line-30"></a>top'n'tail title <font color=Red>=</font> <font color=Cyan>(</font>htmlHeader title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>htmlClose<font color=Cyan>)</font>
+<a name="line-31"></a>
+<a name="line-32"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="line-33"></a>pre <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"&lt;pre&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
+<a name="line-34"></a>
+<a name="line-35"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
+<a name="line-36"></a>renderToken pref <font color=Cyan>(</font>t<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> fontify <font color=Cyan>(</font>colourise pref t<font color=Cyan>)</font>
+<a name="line-37"></a>                         <font color=Cyan>(</font><u><font color=Green>if</font></u> t <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment s <u><font color=Green>else</font></u> escape s<font color=Cyan>)</font>
+<a name="line-38"></a>
+<a name="line-39"></a><a name="renderAnchors"></a>renderAnchors <font color=Red>::</font> <font color=Cyan>(</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>-&gt;</font>String<font color=Cyan>)</font>
+<a name="line-40"></a>                 <font color=Red>-&gt;</font> Either String <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
+<a name="line-41"></a>renderAnchors <u><font color=Green>_</font></u>      <font color=Cyan>(</font>Left v<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\""</font><font color=Cyan>++</font>v<font color=Cyan>++</font><font color=Magenta>"\"&gt;&lt;/a&gt;"</font>
+<a name="line-42"></a>renderAnchors render <font color=Cyan>(</font>Right r<font color=Cyan>)</font> <font color=Red>=</font> render r
+<a name="line-43"></a>
+<a name="line-44"></a><a name="renderComment"></a><font color=Blue>-- if there are <a href="http://links/">http://links/</a> in a comment, turn them into</font>
+<a name="line-45"></a><font color=Blue>-- hyperlinks</font>
+<a name="line-46"></a>renderComment <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="line-47"></a>renderComment xs<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'h'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'t'</font><b><font color=Red>:</font></b><font color=Magenta>'p'</font><b><font color=Red>:</font></b><font color=Magenta>':'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><font color=Magenta>'/'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font>
+<a name="line-48"></a>        renderLink a <font color=Cyan>++</font> renderComment b
+<a name="line-49"></a>    <u><font color=Green>where</font></u>
+<a name="line-50"></a>        <font color=Blue>-- see <a href="http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters">http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</a></font>
+<a name="line-51"></a>        isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&amp;'()*+,;=-._~%"</font>
+<a name="line-52"></a>        <font color=Cyan>(</font>a<font color=Cyan>,</font>b<font color=Cyan>)</font> <font color=Red>=</font> span isUrlChar xs
+<a name="line-53"></a>        renderLink link <font color=Red>=</font> <font color=Magenta>"&lt;a href=\""</font> <font color=Cyan>++</font> link <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font> escape link <font color=Cyan>++</font> <font color=Magenta>"&lt;/a&gt;"</font>
+<a name="line-54"></a>        
+<a name="line-55"></a>renderComment <font color=Cyan>(</font>x<b><font color=Red>:</font></b>xs<font color=Cyan>)</font> <font color=Red>=</font> escape <font color=Red>[</font>x<font color=Red>]</font> <font color=Cyan>++</font> renderComment xs
+<a name="line-56"></a>renderComment [] <font color=Red>=</font> []
+<a name="line-57"></a>
+<a name="line-58"></a><a name="renderNewLinesAnchors"></a>renderNewLinesAnchors <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="line-59"></a>renderNewLinesAnchors <font color=Red>=</font> unlines <font color=Cyan>.</font> map render <font color=Cyan>.</font> zip <font color=Red>[</font><font color=Magenta>1</font><font color=Red>..</font><font color=Red>]</font> <font color=Cyan>.</font> lines
+<a name="line-60"></a>    <u><font color=Green>where</font></u> render <font color=Cyan>(</font>line<font color=Cyan>,</font> s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&lt;a name=\"line-"</font> <font color=Cyan>++</font> show line <font color=Cyan>++</font> <font color=Magenta>"\"&gt;&lt;/a&gt;"</font> <font color=Cyan>++</font> s
+<a name="line-61"></a>
+<a name="line-62"></a><a name="fontify"></a><font color=Blue>-- Html stuff</font>
+<a name="line-63"></a>fontify [] s     <font color=Red>=</font> s
+<a name="line-64"></a>fontify <font color=Cyan>(</font>h<b><font color=Red>:</font></b>hs<font color=Cyan>)</font> s <font color=Red>=</font> font h <font color=Cyan>(</font>fontify hs s<font color=Cyan>)</font>
+<a name="line-65"></a>
+<a name="line-66"></a><a name="font"></a>font Normal         s <font color=Red>=</font> s
+<a name="line-67"></a>font Bold           s <font color=Red>=</font> <font color=Magenta>"&lt;b&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/b&gt;"</font>
+<a name="line-68"></a>font Dim            s <font color=Red>=</font> <font color=Magenta>"&lt;em&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/em&gt;"</font>
+<a name="line-69"></a>font Underscore     s <font color=Red>=</font> <font color=Magenta>"&lt;u&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/u&gt;"</font>
+<a name="line-70"></a>font Blink          s <font color=Red>=</font> <font color=Magenta>"&lt;blink&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/blink&gt;"</font>
+<a name="line-71"></a>font ReverseVideo   s <font color=Red>=</font> s
+<a name="line-72"></a>font Concealed      s <font color=Red>=</font> s
+<a name="line-73"></a>font <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font color="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font>
+<a name="line-74"></a>font <font color=Cyan>(</font>Background c<font color=Cyan>)</font> s <font color=Red>=</font> <font color=Magenta>"&lt;font bgcolor="</font><font color=Cyan>++</font>show c<font color=Cyan>++</font><font color=Magenta>"&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/font&gt;"</font>
+<a name="line-75"></a>font Italic         s <font color=Red>=</font> <font color=Magenta>"&lt;i&gt;"</font><font color=Cyan>++</font>s<font color=Cyan>++</font><font color=Magenta>"&lt;/i&gt;"</font>
+<a name="line-76"></a>
+<a name="line-77"></a><a name="escape"></a>escape <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;lt;"</font><font color=Cyan>++</font>escape cs
+<a name="line-78"></a>escape <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;gt;"</font><font color=Cyan>++</font>escape cs
+<a name="line-79"></a>escape <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"&amp;amp;"</font><font color=Cyan>++</font>escape cs
+<a name="line-80"></a>escape <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>   <font color=Red>=</font> c<b><font color=Red>:</font></b> escape cs
+<a name="line-81"></a>escape []       <font color=Red>=</font> []
+<a name="line-82"></a>
+<a name="line-83"></a><a name="htmlHeader"></a>htmlHeader title <font color=Red>=</font> unlines
+<a name="line-84"></a>  <font color=Red>[</font> <font color=Magenta>"&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"&gt;"</font>
+<a name="line-85"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;html&gt;"</font>
+<a name="line-86"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;head&gt;"</font>
+<a name="line-87"></a>  <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
+<a name="line-88"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
+<a name="line-89"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;/head&gt;"</font>
+<a name="line-90"></a>  <font color=Cyan>,</font> <font color=Magenta>"&lt;body&gt;"</font>
+<a name="line-91"></a>  <font color=Red>]</font>
+<a name="line-92"></a><a name="htmlClose"></a>htmlClose  <font color=Red>=</font> <font color=Magenta>"\n&lt;/body&gt;\n&lt;/html&gt;"</font>
 </pre>
 </body>
 </html>
diff --git a/docs/hscolour/Language/Haskell/HsColour/InlineCSS.html b/docs/hscolour/Language/Haskell/HsColour/InlineCSS.html
--- a/docs/hscolour/Language/Haskell/HsColour/InlineCSS.html
+++ b/docs/hscolour/Language/Haskell/HsColour/InlineCSS.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code as HTML with inline CSS.</font>
-<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>InlineCSS <font color=Cyan>(</font>hscolour<font color=Cyan>,</font>top'n'tail<font color=Cyan>)</font> <u><font color=Green>where</font></u>
 <a name="line-3"></a>
 <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
 <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify
@@ -17,74 +17,70 @@
 <a name="line-10"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete HTML document with inline styling</font>
 <a name="line-11"></a>hscolour <font color=Red>::</font> ColourPrefs	<font color=Blue>-- ^ Preferences for styling.</font>
 <a name="line-12"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether to include anchors.</font>
-<a name="line-13"></a>         <font color=Red>-&gt;</font> Bool   <font color=Blue>-- ^ Whether output should be partial</font>
-<a name="line-14"></a>                   <font color=Blue>--   (= no document headers will be included.)</font>
-<a name="line-15"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Title for HTML page.</font>
-<a name="line-16"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
-<a name="line-17"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>
-<a name="line-18"></a>                   <font color=Blue>--   Haskell source code.</font>
-<a name="line-19"></a>hscolour prefs anchor partial title <font color=Red>=</font>
-<a name="line-20"></a>  <font color=Cyan>(</font><u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail title<font color=Cyan>)</font>
-<a name="line-21"></a>  <font color=Cyan>.</font> pre
-<a name="line-22"></a>  <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor 
-<a name="line-23"></a>        <u><font color=Green>then</font></u> renderNewLinesAnchors
-<a name="line-24"></a>             <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>
-<a name="line-25"></a>             <font color=Cyan>.</font> insertAnchors
-<a name="line-26"></a>        <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>
-<a name="line-27"></a>  <font color=Cyan>.</font> tokenise
-<a name="line-28"></a>
-<a name="line-29"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
-<a name="line-30"></a>top'n'tail title  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>
+<a name="line-13"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
+<a name="line-14"></a>         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>
+<a name="line-15"></a>                   <font color=Blue>--   Haskell source code.</font>
+<a name="line-16"></a>hscolour prefs anchor <font color=Red>=</font>
+<a name="line-17"></a>  pre
+<a name="line-18"></a>  <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor 
+<a name="line-19"></a>        <u><font color=Green>then</font></u> renderNewLinesAnchors
+<a name="line-20"></a>             <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-21"></a>             <font color=Cyan>.</font> insertAnchors
+<a name="line-22"></a>        <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken prefs<font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="line-23"></a>  <font color=Cyan>.</font> tokenise
+<a name="line-24"></a>
+<a name="line-25"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+<a name="line-26"></a>top'n'tail title  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix title <font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>cssSuffix<font color=Cyan>)</font>
+<a name="line-27"></a>
+<a name="line-28"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="line-29"></a>pre <font color=Red>=</font>   <font color=Cyan>(</font><font color=Magenta>"&lt;pre style=\"font-family:Consolas, Monaco, Monospace;\"&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font>
+<a name="line-30"></a>      <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
 <a name="line-31"></a>
-<a name="line-32"></a><a name="pre"></a>pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-33"></a>pre <font color=Red>=</font>   <font color=Cyan>(</font><font color=Magenta>"&lt;pre style=\"font-family:Consolas, Monaco, Monospace;\"&gt;"</font><font color=Cyan>++</font><font color=Cyan>)</font>
-<a name="line-34"></a>      <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font><font color=Magenta>"&lt;/pre&gt;"</font><font color=Cyan>)</font>
-<a name="line-35"></a>
-<a name="line-36"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
-<a name="line-37"></a>renderToken prefs <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>
-<a name="line-38"></a>  stylise <font color=Cyan>(</font>colourise prefs cls<font color=Cyan>)</font> <font color=Cyan>$</font>
-<a name="line-39"></a>  <u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text
-<a name="line-40"></a>
-<a name="line-41"></a><a name="stylise"></a>stylise <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
-<a name="line-42"></a>stylise hs s <font color=Red>=</font> <font color=Magenta>"&lt;span style=\""</font> <font color=Cyan>++</font> concatMap style hs <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font>s<font color=Cyan>++</font> <font color=Magenta>"&lt;/span&gt;"</font>
-<a name="line-43"></a>
-<a name="line-44"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines
-<a name="line-45"></a>    <font color=Red>[</font><font color=Magenta>"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"&gt;"</font>
-<a name="line-46"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>
-<a name="line-47"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>
-<a name="line-48"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
-<a name="line-49"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
-<a name="line-50"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>
-<a name="line-51"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;body style=\"background-color: #131313; color: #ffffff;\"&gt;"</font>
-<a name="line-52"></a>    <font color=Red>]</font>
-<a name="line-53"></a>    
-<a name="line-54"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines
-<a name="line-55"></a>    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>
-<a name="line-56"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>
-<a name="line-57"></a>    <font color=Red>]</font>
-<a name="line-58"></a>
-<a name="line-59"></a><a name="style"></a>style <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> String
-<a name="line-60"></a>style Normal         <font color=Red>=</font> <font color=Magenta>""</font>
-<a name="line-61"></a>style Bold           <font color=Red>=</font> <font color=Magenta>"font-weight: bold;"</font>
-<a name="line-62"></a>style Dim            <font color=Red>=</font> <font color=Magenta>"font-weight: lighter;"</font>
-<a name="line-63"></a>style Underscore     <font color=Red>=</font> <font color=Magenta>"text-decoration: underline;"</font>
-<a name="line-64"></a>style Blink          <font color=Red>=</font> <font color=Magenta>"text-decoration:  blink;"</font>
-<a name="line-65"></a>style ReverseVideo   <font color=Red>=</font> <font color=Magenta>""</font>
-<a name="line-66"></a>style Concealed      <font color=Red>=</font> <font color=Magenta>"text-decoration:  line-through;"</font>
-<a name="line-67"></a>style <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"color: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>
-<a name="line-68"></a>style <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"background-colour: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>
-<a name="line-69"></a>style Italic         <font color=Red>=</font> <font color=Magenta>"font-style: italic;"</font>
-<a name="line-70"></a>
-<a name="line-71"></a><a name="csscolour"></a>csscolour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String
-<a name="line-72"></a>csscolour Black   <font color=Red>=</font> <font color=Magenta>"#000000"</font>
-<a name="line-73"></a>csscolour Red     <font color=Red>=</font> <font color=Magenta>"#ff0000"</font>
-<a name="line-74"></a>csscolour Green   <font color=Red>=</font> <font color=Magenta>"#00ff00"</font>
-<a name="line-75"></a>csscolour Yellow  <font color=Red>=</font> <font color=Magenta>"#ffff00"</font>
-<a name="line-76"></a>csscolour Blue    <font color=Red>=</font> <font color=Magenta>"#0000ff"</font>
-<a name="line-77"></a>csscolour Magenta <font color=Red>=</font> <font color=Magenta>"#ff00ff"</font>
-<a name="line-78"></a>csscolour Cyan    <font color=Red>=</font> <font color=Magenta>"#00ffff"</font>
-<a name="line-79"></a>csscolour White   <font color=Red>=</font> <font color=Magenta>"#ffffff"</font>
-<a name="line-80"></a>
+<a name="line-32"></a><a name="renderToken"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
+<a name="line-33"></a>renderToken prefs <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font>
+<a name="line-34"></a>  stylise <font color=Cyan>(</font>colourise prefs cls<font color=Cyan>)</font> <font color=Cyan>$</font>
+<a name="line-35"></a>  <u><font color=Green>if</font></u> cls <font color=Cyan>==</font> Comment <u><font color=Green>then</font></u> renderComment text <u><font color=Green>else</font></u> escape text
+<a name="line-36"></a>
+<a name="line-37"></a><a name="stylise"></a>stylise <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font> <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+<a name="line-38"></a>stylise hs s <font color=Red>=</font> <font color=Magenta>"&lt;span style=\""</font> <font color=Cyan>++</font> concatMap style hs <font color=Cyan>++</font> <font color=Magenta>"\"&gt;"</font> <font color=Cyan>++</font>s<font color=Cyan>++</font> <font color=Magenta>"&lt;/span&gt;"</font>
+<a name="line-39"></a>
+<a name="line-40"></a><a name="cssPrefix"></a>cssPrefix title <font color=Red>=</font> unlines
+<a name="line-41"></a>    <font color=Red>[</font><font color=Magenta>"&lt;!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"&gt;"</font>
+<a name="line-42"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>
+<a name="line-43"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>
+<a name="line-44"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
+<a name="line-45"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"&lt;/title&gt;"</font>
+<a name="line-46"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>
+<a name="line-47"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;body style=\"background-color: #131313; color: #ffffff;\"&gt;"</font>
+<a name="line-48"></a>    <font color=Red>]</font>
+<a name="line-49"></a>    
+<a name="line-50"></a><a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines
+<a name="line-51"></a>    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>
+<a name="line-52"></a>    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>
+<a name="line-53"></a>    <font color=Red>]</font>
+<a name="line-54"></a>
+<a name="line-55"></a><a name="style"></a>style <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> String
+<a name="line-56"></a>style Normal         <font color=Red>=</font> <font color=Magenta>""</font>
+<a name="line-57"></a>style Bold           <font color=Red>=</font> <font color=Magenta>"font-weight: bold;"</font>
+<a name="line-58"></a>style Dim            <font color=Red>=</font> <font color=Magenta>"font-weight: lighter;"</font>
+<a name="line-59"></a>style Underscore     <font color=Red>=</font> <font color=Magenta>"text-decoration: underline;"</font>
+<a name="line-60"></a>style Blink          <font color=Red>=</font> <font color=Magenta>"text-decoration:  blink;"</font>
+<a name="line-61"></a>style ReverseVideo   <font color=Red>=</font> <font color=Magenta>""</font>
+<a name="line-62"></a>style Concealed      <font color=Red>=</font> <font color=Magenta>"text-decoration:  line-through;"</font>
+<a name="line-63"></a>style <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"color: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>
+<a name="line-64"></a>style <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"background-colour: "</font><font color=Cyan>++</font>csscolour c<font color=Cyan>++</font><font color=Magenta>";"</font>
+<a name="line-65"></a>style Italic         <font color=Red>=</font> <font color=Magenta>"font-style: italic;"</font>
+<a name="line-66"></a>
+<a name="line-67"></a><a name="csscolour"></a>csscolour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String
+<a name="line-68"></a>csscolour Black   <font color=Red>=</font> <font color=Magenta>"#000000"</font>
+<a name="line-69"></a>csscolour Red     <font color=Red>=</font> <font color=Magenta>"#ff0000"</font>
+<a name="line-70"></a>csscolour Green   <font color=Red>=</font> <font color=Magenta>"#00ff00"</font>
+<a name="line-71"></a>csscolour Yellow  <font color=Red>=</font> <font color=Magenta>"#ffff00"</font>
+<a name="line-72"></a>csscolour Blue    <font color=Red>=</font> <font color=Magenta>"#0000ff"</font>
+<a name="line-73"></a>csscolour Magenta <font color=Red>=</font> <font color=Magenta>"#ff00ff"</font>
+<a name="line-74"></a>csscolour Cyan    <font color=Red>=</font> <font color=Magenta>"#00ffff"</font>
+<a name="line-75"></a>csscolour White   <font color=Red>=</font> <font color=Magenta>"#ffffff"</font>
+<a name="line-76"></a>
 </pre>
 </body>
 </html>
diff --git a/docs/hscolour/Language/Haskell/HsColour/LaTeX.html b/docs/hscolour/Language/Haskell/HsColour/LaTeX.html
--- a/docs/hscolour/Language/Haskell/HsColour/LaTeX.html
+++ b/docs/hscolour/Language/Haskell/HsColour/LaTeX.html
@@ -6,7 +6,7 @@
 </head>
 <body>
 <pre><a name="line-1"></a><font color=Blue>-- | Formats Haskell source code using LaTeX macros.</font>
-<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+<a name="line-2"></a><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX <font color=Cyan>(</font>hscolour<font color=Cyan>,</font> top'n'tail<font color=Cyan>)</font> <u><font color=Green>where</font></u>
 <a name="line-3"></a>
 <a name="line-4"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <u><font color=Green>as</font></u> Classify
 <a name="line-5"></a><u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
@@ -14,107 +14,106 @@
 <a name="line-7"></a>
 <a name="line-8"></a><a name="hscolour"></a><font color=Blue>-- | Formats Haskell source code as a complete LaTeX document.</font>
 <a name="line-9"></a>hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>
-<a name="line-10"></a>         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether output should be partial (= no prologue).</font>
-<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
-<a name="line-12"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ A LaTeX document\/fragment containing the coloured </font>
-<a name="line-13"></a>                        <font color=Blue>--   Haskell source code.</font>
-<a name="line-14"></a>hscolour pref partial <font color=Red>=</font>
-<a name="line-15"></a>  <font color=Cyan>(</font> <u><font color=Green>if</font></u> partial <u><font color=Green>then</font></u> id <u><font color=Green>else</font></u> top'n'tail<font color=Cyan>)</font>
-<a name="line-16"></a>  <font color=Cyan>.</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font>
-<a name="line-17"></a>  <font color=Cyan>.</font> tokenise
-<a name="line-18"></a>
-<a name="line-19"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String
-<a name="line-20"></a>top'n'tail  <font color=Red>=</font> <font color=Cyan>(</font>latexPrefix<font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>latexSuffix<font color=Cyan>)</font>
-<a name="line-21"></a>
-<a name="line-22"></a><a name="renderToken"></a><font color=Blue>-- | Wrap each lexeme in the appropriate LaTeX macro.</font>
-<a name="line-23"></a><font color=Blue>--   TODO: filter dangerous characters like "{}_$"</font>
-<a name="line-24"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
-<a name="line-25"></a>renderToken pref <font color=Cyan>(</font>Space<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font> filterSpace text
-<a name="line-26"></a>renderToken pref <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font>   <font color=Red>=</font>
-<a name="line-27"></a>  <u><font color=Green>let</font></u> symb <font color=Red>=</font> <u><font color=Green>case</font></u> cls <u><font color=Green>of</font></u>
-<a name="line-28"></a>              String <font color=Red>-&gt;</font> <font color=Magenta>"``"</font> <font color=Cyan>++</font> <font color=Cyan>(</font>dropFirst <font color=Magenta>'\"'</font> <font color=Cyan>$</font> dropLast <font color=Magenta>'\"'</font> <font color=Cyan>$</font> text<font color=Cyan>)</font> <font color=Cyan>++</font> <font color=Magenta>"''"</font>
-<a name="line-29"></a>              <u><font color=Green>_</font></u>      <font color=Red>-&gt;</font> text
-<a name="line-30"></a>      style <font color=Red>=</font> colourise pref cls
-<a name="line-31"></a>      <font color=Cyan>(</font>pre<font color=Cyan>,</font> post<font color=Cyan>)</font> <font color=Red>=</font> unzip <font color=Cyan>$</font> map latexHighlight style
-<a name="line-32"></a>  <u><font color=Green>in</font></u> concat pre <font color=Cyan>++</font> filterSpecial symb <font color=Cyan>++</font> concat post
-<a name="line-33"></a>
-<a name="line-34"></a><a name="filterSpace"></a><font color=Blue>-- | Filter white space characters.</font>
-<a name="line-35"></a>filterSpace <font color=Red>::</font> String
-<a name="line-36"></a>            <font color=Red>-&gt;</font> String
-<a name="line-37"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
-<a name="line-38"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>' '</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\hsspace "</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
-<a name="line-39"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\t'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\\hstab "</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
-<a name="line-40"></a>filterSpace <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
-<a name="line-41"></a>filterSpace []        <font color=Red>=</font> []
-<a name="line-42"></a>
-<a name="line-43"></a><a name="filterSpecial"></a><font color=Blue>-- | Filters the characters "#$%&amp;~_^\{}" which are special</font>
-<a name="line-44"></a><font color=Blue>--   in LaTeX.</font>
-<a name="line-45"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue>-- ^ The string to filter. </font>
-<a name="line-46"></a>              <font color=Red>-&gt;</font> String  <font color=Blue>-- ^ The LaTeX-safe string.</font>
-<a name="line-47"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'#'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'#'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-48"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'$'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'$'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-49"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'%'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'%'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-50"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-51"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'~'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\tilde{ }"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-52"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'_'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'_'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-53"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'^'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\hat{ }}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-54"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'\\'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"$\\backslash$"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-55"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-56"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'}'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-57"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'|'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{|}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-58"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\leftarrow}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-59"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\langle}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-60"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\rightarrow}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-61"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\rangle}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-62"></a>filterSpecial <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
-<a name="line-63"></a>filterSpecial []        <font color=Red>=</font> []
-<a name="line-64"></a>
-<a name="line-65"></a>
-<a name="line-66"></a><a name="latexHighlight"></a><font color=Blue>-- | Constructs the appropriate LaTeX macro for the given style.</font>
-<a name="line-67"></a>latexHighlight <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font> String<font color=Cyan>)</font>
-<a name="line-68"></a>latexHighlight Normal         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\rm{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-69"></a>latexHighlight Bold           <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\bf{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-70"></a>latexHighlight Dim            <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
-<a name="line-71"></a>latexHighlight Underscore     <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\underline{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-72"></a>latexHighlight Blink          <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
-<a name="line-73"></a>latexHighlight ReverseVideo   <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
-<a name="line-74"></a>latexHighlight Concealed      <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\conceal{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-75"></a>latexHighlight <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\textcolor{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-76"></a>latexHighlight <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\colorbox{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-77"></a>latexHighlight Italic         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\it{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
-<a name="line-78"></a>
-<a name="line-79"></a><a name="latexColour"></a><font color=Blue>-- | Translate a 'Colour' into a LaTeX colour name.</font>
-<a name="line-80"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String
-<a name="line-81"></a>latexColour Black   <font color=Red>=</font> <font color=Magenta>"black"</font>
-<a name="line-82"></a>latexColour Red     <font color=Red>=</font> <font color=Magenta>"red"</font>
-<a name="line-83"></a>latexColour Green   <font color=Red>=</font> <font color=Magenta>"green"</font>
-<a name="line-84"></a>latexColour Yellow  <font color=Red>=</font> <font color=Magenta>"yellow"</font>
-<a name="line-85"></a>latexColour Blue    <font color=Red>=</font> <font color=Magenta>"blue"</font>
-<a name="line-86"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>
-<a name="line-87"></a>latexColour Cyan    <font color=Red>=</font> <font color=Magenta>"cyan"</font>
-<a name="line-88"></a>latexColour White   <font color=Red>=</font> <font color=Magenta>"white"</font>
-<a name="line-89"></a>
-<a name="line-90"></a><a name="latexPrefix"></a><font color=Blue>-- | Generic LaTeX document preamble.</font>
-<a name="line-91"></a>latexPrefix <font color=Red>=</font> unlines
-<a name="line-92"></a>    <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font>
-<a name="line-93"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>
-<a name="line-94"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>
-<a name="line-95"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>
-<a name="line-96"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>
-<a name="line-97"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>
-<a name="line-98"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>
-<a name="line-99"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>
-<a name="line-100"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>
-<a name="line-101"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>
-<a name="line-102"></a>    <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>
-<a name="line-103"></a>    <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font>
-<a name="line-104"></a>    <font color=Red>]</font>
-<a name="line-105"></a>
-<a name="line-106"></a><a name="latexSuffix"></a><font color=Blue>-- | Generic LaTeX document postamble.</font>
-<a name="line-107"></a>latexSuffix <font color=Red>=</font> unlines
-<a name="line-108"></a>    <font color=Red>[</font><font color=Magenta>""</font>
-<a name="line-109"></a>    <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>
-<a name="line-110"></a>    <font color=Red>]</font>
+<a name="line-10"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
+<a name="line-11"></a>         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ A LaTeX document\/fragment containing the coloured </font>
+<a name="line-12"></a>                        <font color=Blue>--   Haskell source code.</font>
+<a name="line-13"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise
+<a name="line-14"></a>
+<a name="line-15"></a><a name="top'n'tail"></a>top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+<a name="line-16"></a>top'n'tail title <font color=Red>=</font> <font color=Cyan>(</font>latexPrefix title<font color=Cyan>++</font><font color=Cyan>)</font> <font color=Cyan>.</font> <font color=Cyan>(</font><font color=Cyan>++</font>latexSuffix<font color=Cyan>)</font>
+<a name="line-17"></a>
+<a name="line-18"></a><a name="renderToken"></a><font color=Blue>-- | Wrap each lexeme in the appropriate LaTeX macro.</font>
+<a name="line-19"></a><font color=Blue>--   TODO: filter dangerous characters like "{}_$"</font>
+<a name="line-20"></a>renderToken <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font> <font color=Red>-&gt;</font> String
+<a name="line-21"></a>renderToken pref <font color=Cyan>(</font>Space<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font> filterSpace text
+<a name="line-22"></a>renderToken pref <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font>   <font color=Red>=</font>
+<a name="line-23"></a>  <u><font color=Green>let</font></u> symb <font color=Red>=</font> <u><font color=Green>case</font></u> cls <u><font color=Green>of</font></u>
+<a name="line-24"></a>              String <font color=Red>-&gt;</font> <font color=Magenta>"``"</font> <font color=Cyan>++</font> <font color=Cyan>(</font>dropFirst <font color=Magenta>'\"'</font> <font color=Cyan>$</font> dropLast <font color=Magenta>'\"'</font> <font color=Cyan>$</font> text<font color=Cyan>)</font> <font color=Cyan>++</font> <font color=Magenta>"''"</font>
+<a name="line-25"></a>              <u><font color=Green>_</font></u>      <font color=Red>-&gt;</font> text
+<a name="line-26"></a>      style <font color=Red>=</font> colourise pref cls
+<a name="line-27"></a>      <font color=Cyan>(</font>pre<font color=Cyan>,</font> post<font color=Cyan>)</font> <font color=Red>=</font> unzip <font color=Cyan>$</font> map latexHighlight style
+<a name="line-28"></a>  <u><font color=Green>in</font></u> concat pre <font color=Cyan>++</font> filterSpecial symb <font color=Cyan>++</font> concat post
+<a name="line-29"></a>
+<a name="line-30"></a><a name="filterSpace"></a><font color=Blue>-- | Filter white space characters.</font>
+<a name="line-31"></a>filterSpace <font color=Red>::</font> String
+<a name="line-32"></a>            <font color=Red>-&gt;</font> String
+<a name="line-33"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
+<a name="line-34"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>' '</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\hsspace "</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
+<a name="line-35"></a>filterSpace <font color=Cyan>(</font><font color=Magenta>'\t'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\\hstab "</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
+<a name="line-36"></a>filterSpace <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpace ss<font color=Cyan>)</font>
+<a name="line-37"></a>filterSpace []        <font color=Red>=</font> []
+<a name="line-38"></a>
+<a name="line-39"></a><a name="filterSpecial"></a><font color=Blue>-- | Filters the characters "#$%&amp;~_^\{}" which are special</font>
+<a name="line-40"></a><font color=Blue>--   in LaTeX.</font>
+<a name="line-41"></a>filterSpecial <font color=Red>::</font> String  <font color=Blue>-- ^ The string to filter. </font>
+<a name="line-42"></a>              <font color=Red>-&gt;</font> String  <font color=Blue>-- ^ The LaTeX-safe string.</font>
+<a name="line-43"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'#'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'#'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-44"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'$'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'$'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-45"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'%'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'%'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-46"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'&amp;'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-47"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'~'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\tilde{ }"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-48"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'_'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'_'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-49"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'^'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\hat{ }}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-50"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'\\'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"$\\backslash$"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-51"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-52"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'}'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>'\\'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-53"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'|'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{|}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-54"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\leftarrow}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-55"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&lt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\langle}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-56"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\rightarrow}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-57"></a>filterSpecial <font color=Cyan>(</font><font color=Magenta>'&gt;'</font><b><font color=Red>:</font></b>cs<font color=Cyan>)</font>  <font color=Red>=</font> <font color=Magenta>"\\ensuremath{\\rangle}"</font><font color=Cyan>++</font><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-58"></a>filterSpecial <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>)</font>    <font color=Red>=</font> c<b><font color=Red>:</font></b><font color=Cyan>(</font>filterSpecial cs<font color=Cyan>)</font>
+<a name="line-59"></a>filterSpecial []        <font color=Red>=</font> []
+<a name="line-60"></a>
+<a name="line-61"></a>
+<a name="line-62"></a><a name="latexHighlight"></a><font color=Blue>-- | Constructs the appropriate LaTeX macro for the given style.</font>
+<a name="line-63"></a>latexHighlight <font color=Red>::</font> Highlight <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font> String<font color=Cyan>)</font>
+<a name="line-64"></a>latexHighlight Normal         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\rm{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-65"></a>latexHighlight Bold           <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\bf{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-66"></a>latexHighlight Dim            <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
+<a name="line-67"></a>latexHighlight Underscore     <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\underline{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-68"></a>latexHighlight Blink          <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
+<a name="line-69"></a>latexHighlight ReverseVideo   <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>""</font><font color=Cyan>,</font> <font color=Magenta>""</font><font color=Cyan>)</font>
+<a name="line-70"></a>latexHighlight Concealed      <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\conceal{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-71"></a>latexHighlight <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\textcolor{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-72"></a>latexHighlight <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"\\colorbox{"</font><font color=Cyan>++</font> latexColour c <font color=Cyan>++</font><font color=Magenta>"}{"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-73"></a>latexHighlight Italic         <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"{\\it{}"</font><font color=Cyan>,</font> <font color=Magenta>"}"</font><font color=Cyan>)</font>
+<a name="line-74"></a>
+<a name="line-75"></a><a name="latexColour"></a><font color=Blue>-- | Translate a 'Colour' into a LaTeX colour name.</font>
+<a name="line-76"></a>latexColour <font color=Red>::</font> Colour <font color=Red>-&gt;</font> String
+<a name="line-77"></a>latexColour Black   <font color=Red>=</font> <font color=Magenta>"black"</font>
+<a name="line-78"></a>latexColour Red     <font color=Red>=</font> <font color=Magenta>"red"</font>
+<a name="line-79"></a>latexColour Green   <font color=Red>=</font> <font color=Magenta>"green"</font>
+<a name="line-80"></a>latexColour Yellow  <font color=Red>=</font> <font color=Magenta>"yellow"</font>
+<a name="line-81"></a>latexColour Blue    <font color=Red>=</font> <font color=Magenta>"blue"</font>
+<a name="line-82"></a>latexColour Magenta <font color=Red>=</font> <font color=Magenta>"magenta"</font>
+<a name="line-83"></a>latexColour Cyan    <font color=Red>=</font> <font color=Magenta>"cyan"</font>
+<a name="line-84"></a>latexColour White   <font color=Red>=</font> <font color=Magenta>"white"</font>
+<a name="line-85"></a>
+<a name="line-86"></a><a name="latexPrefix"></a><font color=Blue>-- | Generic LaTeX document preamble.</font>
+<a name="line-87"></a>latexPrefix title <font color=Red>=</font> unlines
+<a name="line-88"></a>    <font color=Red>[</font><font color=Magenta>"\\documentclass[a4paper, 12pt]{article}"</font>
+<a name="line-89"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage[usenames]{color}"</font>
+<a name="line-90"></a>    <font color=Cyan>,</font><font color=Magenta>"\\usepackage{hyperref}"</font>
+<a name="line-91"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\spaceb}"</font>
+<a name="line-92"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newsavebox{\\tabb}"</font>
+<a name="line-93"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\spaceb}[1ex]{~}"</font>
+<a name="line-94"></a>    <font color=Cyan>,</font><font color=Magenta>"\\savebox{\\tabb}[4ex]{~}"</font>
+<a name="line-95"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"</font>
+<a name="line-96"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\hstab}{\\usebox{\\tabb}}"</font>
+<a name="line-97"></a>    <font color=Cyan>,</font><font color=Magenta>"\\newcommand{\\conceal}[1]{}"</font>
+<a name="line-98"></a>    <font color=Cyan>,</font><font color=Magenta>"\\title{"</font><font color=Cyan>++</font>title<font color=Cyan>++</font><font color=Magenta>"}"</font>
+<a name="line-99"></a>    <font color=Cyan>,</font><font color=Magenta>"%% Generated by HsColour"</font>
+<a name="line-100"></a>    <font color=Cyan>,</font><font color=Magenta>"\\begin{document}"</font>
+<a name="line-101"></a>    <font color=Cyan>,</font><font color=Magenta>"\\maketitle"</font>
+<a name="line-102"></a>    <font color=Cyan>,</font><font color=Magenta>"\\noindent"</font>
+<a name="line-103"></a>    <font color=Red>]</font>
+<a name="line-104"></a>
+<a name="line-105"></a><a name="latexSuffix"></a><font color=Blue>-- | Generic LaTeX document postamble.</font>
+<a name="line-106"></a>latexSuffix <font color=Red>=</font> unlines
+<a name="line-107"></a>    <font color=Red>[</font><font color=Magenta>""</font>
+<a name="line-108"></a>    <font color=Cyan>,</font><font color=Magenta>"\\end{document}"</font>
+<a name="line-109"></a>    <font color=Red>]</font>
 </pre>
 </body>
 </html>
diff --git a/docs/hscolour/doc-index-T.html b/docs/hscolour/doc-index-T.html
--- a/docs/hscolour/doc-index-T.html
+++ b/docs/hscolour/doc-index-T.html
@@ -161,6 +161,42 @@
 >Language.Haskell.HsColour.Classify</A
 ></TD
 ></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
+>top'n'tail</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-CSS.html#v%3Atop%27n%27tail"
+>Language.Haskell.HsColour.CSS</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-HTML.html#v%3Atop%27n%27tail"
+>Language.Haskell.HsColour.HTML</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>3 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-InlineCSS.html#v%3Atop%27n%27tail"
+>Language.Haskell.HsColour.InlineCSS</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>4 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-LaTeX.html#v%3Atop%27n%27tail"
+>Language.Haskell.HsColour.LaTeX</A
+></TD
+></TR
 ></TABLE
 ></TD
 ></TR
diff --git a/hscolour.cabal b/hscolour.cabal
--- a/hscolour.cabal
+++ b/hscolour.cabal
@@ -1,5 +1,5 @@
 Name: hscolour
-Version: 1.14
+Version: 1.15
 Copyright: 2003-2009 Malcolm Wallace, University of York; 2006 Bjorn Bringert
 Maintainer: Malcolm Wallace
 Author: Malcolm Wallace
diff --git a/index.html b/index.html
--- a/index.html
+++ b/index.html
@@ -36,10 +36,10 @@
 <li> Download a tarfile package from:
      <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/">
      ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/</a>
-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.tar.gz">
-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.tar.gz</a>
-     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.zip">
-     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.14.zip</a>
+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.15.tar.gz">
+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.15.tar.gz</a>
+     <a href="http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.15.zip">
+     http://www.cs.york.ac.uk/fp/darcs/hscolour/hscolour-1.15.zip</a>
 <li> Or use the <a href="http://darcs.net/">darcs</a> repository at<br>
        <tt>darcs get http://www.cs.york.ac.uk/fp/darcs/hscolour</tt>
 <li> Sources and history are browsable on-line through
@@ -200,6 +200,7 @@
 <h2>History</h2>
 <p>
 <dl>
+<dt>1.15</dt><dd> makes -nopartial the default for literate files</dd>
 <dt>1.14</dt><dd> merges the -lit and -lit-tex options, adds -lit guessing,
                   and permits multiple input files</dd>
 <dt>1.13</dt><dd> added the new -icss output format, and italic highlights</dd>
@@ -224,7 +225,7 @@
 </dl>
 
 <p>
-This page last modified: 21st August 2009<br>
+This page last modified: 24th August 2009<br>
 Malcolm Wallace<br>
 
 </td></tr></table>
