diff --git a/.hscolour b/.hscolour
new file mode 100644
--- /dev/null
+++ b/.hscolour
@@ -0,0 +1,15 @@
+ColourPrefs
+  { keyword  = [Underscore,Foreground Green]
+  , keyglyph = [Foreground Red]
+  , layout   = [Foreground Cyan]
+  , comment  = [Foreground Blue]
+  , conid    = [Normal]
+  , varid    = [Normal]
+  , conop    = [Bold,Foreground Red]
+  , varop    = [Foreground Cyan]
+  , string   = [Foreground Magenta]
+  , char     = [Foreground Magenta]
+  , number   = [Foreground Magenta]
+  , selection = [Bold, Foreground Magenta]
+  , variantselection = [Dim, Foreground Red, Underscore]
+  }
diff --git a/HsColour.hs b/HsColour.hs
new file mode 100644
--- /dev/null
+++ b/HsColour.hs
@@ -0,0 +1,44 @@
+module Main where
+
+import Language.Haskell.HsColour
+import Language.Haskell.HsColour.Colourise (readColourPrefs)
+
+import System
+import IO (hPutStrLn,hFlush,stdout,stderr,hSetBuffering,BufferMode(..))
+
+version = "1.6"
+
+main :: IO ()
+main = do
+  prog <- System.getProgName
+  args <- System.getArgs
+  pref <- readColourPrefs
+  (ioWrapper,output,anchors) <- case args of
+        []                -> errorOut (help prog)
+        ["-h"]            -> errorOut (help prog)
+        ["-help"]         -> errorOut (help prog)
+        ["--help"]        -> errorOut (help prog)
+        ["-v"]            -> errorOut (prog++" "++version)
+        ["-version"]      -> errorOut (prog++" "++version)
+        ["--version"]     -> errorOut (prog++" "++version)
+        ["-tty"]          -> return (ttyInteract, TTY,  False)
+        ["-html"]         -> return (ttyInteract, HTML, False)
+        ["-css"]          -> return (ttyInteract, CSS,  False)
+        ["-latex"]        -> return (ttyInteract, LaTeX,False)
+        ["-anchorHTML"]   -> return (ttyInteract, HTML, True)
+        ["-anchorCSS"]    -> return (ttyInteract, CSS,  True)
+        [a]               -> return (fileInteract a, TTY,  False)
+        ["-tty",a]        -> return (fileInteract a, TTY,  False)
+        ["-html",a]       -> return (fileInteract a, HTML, False)
+        ["-css",a]        -> return (fileInteract a, CSS,  False)
+        ["-latex",a]      -> return (fileInteract a, LaTeX,False)
+        ["-anchorHTML",a] -> return (fileInteract a, HTML, True)
+        ["-anchorCSS",a]  -> return (fileInteract a, CSS,  True)
+        _                 -> errorOut (help prog)
+  ioWrapper (hscolour output pref anchors)
+  hFlush stdout
+  where
+    fileInteract f u = do readFile f >>= putStr . u
+    ttyInteract s = do hSetBuffering stdout NoBuffering >> Prelude.interact s
+    errorOut s = hPutStrLn stderr s >> hFlush stderr >> exitFailure
+    help p = "Usage: "++p++" [-tty|-html|-css|-latex|-anchorHTML|-anchorCSS] [file.hs]"
diff --git a/LICENCE-GPL b/LICENCE-GPL
new file mode 100644
--- /dev/null
+++ b/LICENCE-GPL
@@ -0,0 +1,342 @@
+		    GNU GENERAL PUBLIC LICENSE
+		       Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+			    Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+
+		    GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+			    NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+		     END OF TERMS AND CONDITIONS
+
+
+	    How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/Language/Haskell/HsColour.hs b/Language/Haskell/HsColour.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour.hs
@@ -0,0 +1,36 @@
+-- | This is a library with colourises Haskell code. 
+--   It currently has three output formats: 
+--
+-- * ANSI terminal codes
+--
+-- * LaTeX macros
+--
+-- * HTML with font tags
+--
+-- * HTML with CSS.
+--
+module Language.Haskell.HsColour (Output(..), ColourPrefs(..),
+                                  hscolour) where
+
+import Language.Haskell.HsColour.Colourise (ColourPrefs(..))
+import qualified Language.Haskell.HsColour.TTY  as TTY
+import qualified Language.Haskell.HsColour.HTML as HTML
+import qualified Language.Haskell.HsColour.CSS  as CSS
+import qualified Language.Haskell.HsColour.LaTeX  as LaTeX
+
+-- | The supported output formats.
+data Output = TTY   -- ^ ANSI terminal codes
+            | LaTeX -- ^ TeX macros
+            | HTML  -- ^ HTML with font tags
+            | CSS   -- ^ HTML with CSS.
+
+-- | Colourise Haskell source code with the give output format.
+hscolour :: Output      -- ^ Output format.
+         -> ColourPrefs -- ^ Colour preferences for formats that support it.
+         -> Bool        -- ^ Whether to include anchors.
+         -> String      -- ^ Haskell source code.
+         -> String      -- ^ Coloured Haskell source code.
+hscolour TTY   pref _      = TTY.hscolour pref
+hscolour LaTeX pref _      = LaTeX.hscolour pref
+hscolour HTML  pref anchor = HTML.hscolour pref anchor
+hscolour CSS   _    anchor = CSS.hscolour anchor
diff --git a/Language/Haskell/HsColour/ANSI.hs b/Language/Haskell/HsColour/ANSI.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/ANSI.hs
@@ -0,0 +1,93 @@
+-- Partially taken from Hugs AnsiScreen.hs library:
+module Language.Haskell.HsColour.ANSI
+  ( highlightOn
+  , highlightOff
+  , highlight
+  , cleareol, clearbol, clearline, clearDown, clearUp, cls
+  , goto
+  , cursorUp, cursorDown, cursorLeft, cursorRight
+  , savePosition, restorePosition
+  , Highlight(..)
+  , Colour(..)
+  , colourCycle
+  , enableScrollRegion, scrollUp, scrollDown
+  , lineWrap
+  ) where
+
+import Language.Haskell.HsColour.ColourHighlight
+
+import List (intersperse,isPrefixOf)
+import Char (isDigit)
+
+
+-- Basic screen control codes:
+
+type Pos           = (Int,Int)
+
+at        :: Pos -> String -> String
+goto      :: Int -> Int -> String
+home      :: String
+cls       :: String
+
+at (x,y) s  = goto x y ++ s
+goto x y    = '\ESC':'[':(show y ++(';':show x ++ "H"))
+home        = goto 1 1
+
+cursorUp    = "\ESC[A"
+cursorDown  = "\ESC[B"
+cursorRight = "\ESC[C"
+cursorLeft  = "\ESC[D"
+
+cleareol    = "\ESC[K"
+clearbol    = "\ESC[1K"
+clearline   = "\ESC[2K"
+clearDown   = "\ESC[J"
+clearUp     = "\ESC[1J"
+-- Choose whichever of the following lines is suitable for your system:
+cls         = "\ESC[2J"     -- for PC with ANSI.SYS
+--cls         = "\^L"         -- for Sun window
+
+savePosition    = "\ESC7"
+restorePosition = "\ESC8"
+
+
+-- data Colour    -- imported from ColourHighlight
+-- data Highlight -- imported from ColourHighlight
+
+instance Enum Highlight where
+  fromEnum Normal       = 0
+  fromEnum Bold         = 1
+  fromEnum Dim          = 2
+  fromEnum Underscore   = 4
+  fromEnum Blink        = 5
+  fromEnum ReverseVideo = 7
+  fromEnum Concealed    = 8
+  fromEnum (Foreground c) = 30 + fromEnum c
+  fromEnum (Background c) = 40 + fromEnum c
+
+highlight :: [Highlight] -> String -> String
+highlight attrs s = highlightOn attrs ++ s ++ highlightOff
+
+highlightOn []     = highlightOn [Normal]
+highlightOn attrs  = "\ESC["
+                     ++ concat (intersperse ";" (map (show.fromEnum) attrs))
+                     ++"m"
+highlightOff = "\ESC[0m"
+
+
+-- An infinite supply of colours.
+colourCycle :: [Colour]
+colourCycle = cycle [Red,Blue,Magenta,Green,Cyan]
+
+
+-- Scrolling
+enableScrollRegion :: Int -> Int -> String
+enableScrollRegion start end = "\ESC["++show start++';':show end++"r"
+
+scrollDown  = "\ESCD"
+scrollUp    = "\ESCM"
+
+-- Line-wrapping mode
+lineWrap True  = "\ESC[7h"
+lineWrap False = "\ESC[7l"
+
diff --git a/Language/Haskell/HsColour/Anchors.hs b/Language/Haskell/HsColour/Anchors.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/Anchors.hs
@@ -0,0 +1,130 @@
+module Language.Haskell.HsColour.Anchors
+  ( insertAnchors
+  ) where
+
+import Language.Haskell.HsColour.Classify
+import List
+
+-- This is an attempt to find the first defining occurrence of an
+-- identifier (function, datatype, class) in a Haskell source file.
+-- Rather than parse the module properly, we try to get by with just
+-- a finite state automaton.  Keeping a record of identifiers we
+-- have already seen, we look at the beginning of every line to see
+-- if it starts with the right tokens to introduce a defn.  If so,
+-- we look a little bit further until we can be certain.  Then plonk
+-- (or not) an anchor at the beginning of the line.
+
+type Anchor = String
+
+-- | 'insertAnchors' places an anchor marker in the token stream before the
+--   first defining occurrence of any identifier.  Here, /before/ means
+--   immediately preceding its type signature, or preceding a (haddock)
+--   comment that comes immediately before the type signature, or failing
+--   either of those, before the first equation.
+insertAnchors :: [(TokenType,String)] -> [Either Anchor (TokenType,String)]
+insertAnchors = anchor emptyST
+
+-- looks at first token in the left-most position of each line
+-- precondition: have just seen a newline token.
+anchor st s = case identifier st s of
+                Nothing -> emit st s
+                Just v  -> Left v: emit (insertST v st) s
+
+-- emit passes stuff through until the next newline has been encountered,
+-- then jumps back into the anchor function
+-- pre-condition: newlines are explicitly single tokens
+emit st (t@(Space,"\n"):stream) = Right t: anchor st stream
+emit st (t:stream)              = Right t: emit st stream
+emit _  []                      = []
+
+-- Given that we are at the beginning of a line, determine whether there
+-- is an identifier defined here, and if so, return it.
+-- precondition: have just seen a newline token.
+identifier st t@((Varid,v):stream) =
+    case skip stream of
+        ((Varop,v):_) | not (v`inST`st) -> Just (fix v)
+        notVarop  --  | typesig stream  -> Nothing    -- not a defn
+                      | v `inST` st     -> Nothing    -- already defined
+                      | otherwise       -> Just v
+identifier st t@((Layout,"("):stream) =
+    case stream of
+      ((Varop,v):(Layout,")"):_)
+                  --  | typesig stream  -> Nothing
+	              | v `inST` st     -> Nothing
+	              | otherwise	-> Just (fix v)
+      notVarop -> case skip (munchParens stream) of
+          ((Varop,v):_) | not (v`inST`st) -> Just (fix v)
+          _             -> Nothing
+identifier st t@((Keyword,"foreign"):stream) = Nothing -- not yet implemented
+identifier st t@((Keyword,"data"):stream)    = getConid stream
+identifier st t@((Keyword,"type"):stream)    = getConid stream
+identifier st t@((Keyword,"class"):stream)   = getConid stream
+identifier st t@((Comment,_):(Space,"\n"):stream) = identifier st stream
+identifier st stream = Nothing
+
+-- Is this really a type signature?  (no longer used)
+typesig :: [(TokenType,String)] -> Bool
+typesig ((Keyglyph,"::"):_)   = True
+typesig ((Varid,_):stream)    = typesig stream
+typesig ((Layout,"("):(Varop,_):(Layout,")"):stream)    = typesig stream
+typesig ((Layout,","):stream) = typesig stream
+typesig ((Space,_):stream)    = typesig stream
+typesig ((Comment,_):stream)  = typesig stream
+typesig _                     = False
+
+-- throw away everything from opening paren to matching close
+munchParens =  munch (0::Int)	-- already seen open paren
+  where munch 0 ((Layout,")"):rest) = rest
+        munch n ((Layout,")"):rest) = munch (n-1) rest
+        munch n ((Layout,"("):rest) = munch (n+1) rest
+        munch n (_:rest)            = munch n rest
+        munch _ []                  = []	-- source is ill-formed
+
+-- ensure anchor name is correct for a Varop
+fix ('`':v) = init v
+fix v       = v
+
+-- look past whitespace and comments to next "real" token
+skip ((Space,_):stream)   = skip stream
+skip ((Comment,_):stream) = skip stream
+skip stream               = stream
+
+-- skip possible context up to and including "=>", returning next Conid token
+-- (this function is highly partial - relies on source being parse-correct)
+getConid stream =
+    case skip stream of
+        ((Conid,c):rest) -> case context rest of
+                              ((Keyglyph,"="):_)     -> Just c
+                              ((Keyglyph,"=>"):more) ->
+                                  case skip more of
+                                      ((Conid,c'):_) -> Just c'
+                                      v -> debug v ("Conid "++c++" =>")
+                              v -> debug v ("Conid "++c++" no = or =>")
+        ((Layout,"("):rest) -> case context rest of
+                                   ((Keyglyph,"=>"):more) ->
+                                       case skip more of
+                                           ((Conid,c'):_) -> Just c'
+                                           v -> debug v ("(...) =>")
+                                   v -> debug v ("(...) no =>")
+        v -> debug v ("no Conid or (...)")
+    where debug (s:t) c = Nothing
+       -- debug (s:t) c = error ("HsColour: getConid failed: "++show s
+       --                       ++"\n  in the context of: "++c)
+
+-- jump past possible class context
+context stream@((Keyglyph,"="):_) = stream
+context stream@((Keyglyph,"=>"):_) = stream
+context (_:stream) = context stream
+
+-- simple implementation of a string lookup table.
+-- replace this with something more sophisticated if needed.
+type ST = [String]
+
+emptyST :: ST
+emptyST = []
+
+insertST :: String -> ST -> ST
+insertST k st = insert k st
+
+inST :: String -> ST -> Bool
+inST k st = k `elem` st
diff --git a/Language/Haskell/HsColour/CSS.hs b/Language/Haskell/HsColour/CSS.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/CSS.hs
@@ -0,0 +1,65 @@
+-- | Formats Haskell source code as HTML with CSS.
+module Language.Haskell.HsColour.CSS (hscolour, hscolourFragment) where
+
+import Language.Haskell.HsColour.Anchors
+import Language.Haskell.HsColour.Classify as Classify
+import Language.Haskell.HsColour.HTML (renderAnchors, renderComment, escape)
+
+-- | Formats Haskell source code as a complete HTML document with CSS.
+hscolour :: Bool   -- ^ Whether to include anchors
+         -> String -- ^ Haskell source code.
+         -> String -- ^ An HTML document containing the coloured 
+                   --   Haskell source code.
+hscolour anchor = top'n'tail . hscolourFragment anchor
+
+-- | Formats Haskell source code as an HTML fragment with CSS.
+--   No stylesheet link is included in the output.
+hscolourFragment :: Bool   -- ^ Whether to include anchors
+                 -> String -- ^ Haskell source code.
+                 -> String -- ^ An HTML fragment containing the coloured 
+                           --   Haskell source code.
+hscolourFragment anchor = 
+    pre . (if anchor 
+           then concatMap (renderAnchors renderToken) . insertAnchors
+           else concatMap renderToken) . tokenise
+
+top'n'tail :: String -> String
+top'n'tail  = (cssPrefix++) . (++cssSuffix)
+
+pre :: String -> String
+pre = ("<pre>"++) . (++"</pre>")
+
+renderToken :: (TokenType,String) -> String
+renderToken (Space,text) = text
+renderToken (cls,text)   = "<span class='" ++ cssClass cls ++ "'>" ++
+                           (if cls == Comment then renderComment text else escape text) ++
+                           "</span>"
+
+cssClass Keyword  = "keyword"
+cssClass Keyglyph = "keyglyph"
+cssClass Layout   = "layout"
+cssClass Comment  = "comment"
+cssClass Conid    = "conid"
+cssClass Varid    = "varid"
+cssClass Conop    = "conop"
+cssClass Varop    = "varop"
+cssClass String   = "str"
+cssClass Char     = "chr"
+cssClass Number   = "num"
+cssClass Error    = "sel"
+
+cssPrefix = unlines
+    ["<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"
+    ,"<html>"
+    ,"<head>"
+    ,"<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->"
+    ,"<title>Haskell Code by HsColour</title>"
+    ,"<link type='text/css' rel='stylesheet' href='hscolour.css' />"
+    ,"</head>"
+    ,"<body>"
+    ]
+    
+cssSuffix = unlines
+    ["</body>"
+    ,"</html>"
+    ]
diff --git a/Language/Haskell/HsColour/Classify.hs b/Language/Haskell/HsColour/Classify.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/Classify.hs
@@ -0,0 +1,99 @@
+module Language.Haskell.HsColour.Classify
+  ( TokenType(..)
+  , tokenise
+  ) where
+
+import Char
+import List
+
+-- Lex Haskell source code into an annotated token stream, without
+-- discarding any characters or layout.
+tokenise :: String -> [(TokenType,String)]
+tokenise = map (\s-> (classify s,s)) . glue . chunk
+
+-- Basic Haskell lexing, except we keep whitespace.
+chunk :: String -> [String]
+chunk []    = []
+chunk ('\r':s) = chunk s -- get rid of DOS newline stuff
+chunk ('\n':s) = "\n": chunk s
+chunk (c:s) | isLinearSpace c
+            = (c:ss): chunk rest where (ss,rest) = span isLinearSpace s
+chunk ('{':'-':s) = let (com,s') = nestcomment 0 s
+                    in ('{':'-':com) : chunk s'
+chunk s = case Prelude.lex s of
+              []             -> [head s]: chunk (tail s) -- e.g. inside comment
+              ((tok@('-':'-':_),rest):_)
+                  | all (=='-') tok -> (tok++com): chunk s'
+                                       where (com,s') = eolcomment rest
+              ((tok,rest):_) -> tok: chunk rest
+
+isLinearSpace c = c `elem` " \t" -- " \t\xa0"
+
+-- Glue sequences of tokens into more useful blobs
+--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names
+--                    = glue ((q++"."++n): rest)
+glue ("`":rest) =				-- `varid` -> varop
+  case glue rest of
+    (qn:"`":rest) -> ("`"++qn++"`"): glue rest
+    _             -> ("`": rest)
+glue (s:ss)       | all (=='-') s && length s >=2	-- eol comment
+                  = (s++concat c): glue rest
+                  where (c,rest) = break ('\n'`elem`) ss
+--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment
+--                  where (c,rest) = nestcomment 0 ss
+glue (s:ss)       = s: glue ss
+glue []           = []
+
+-- Deal with comments.
+nestcomment :: Int -> String -> (String,String)
+nestcomment n ('{':'-':ss) | n>=0 = (("{-"++cs),rm)
+                                  where (cs,rm) = nestcomment (n+1) ss
+nestcomment n ('-':'}':ss) | n>0  = (("-}"++cs),rm)
+                                  where (cs,rm) = nestcomment (n-1) ss
+nestcomment n ('-':'}':ss) | n==0 = ("-}",ss)
+nestcomment n (s:ss)       | n>=0 = ((s:cs),rm)
+                                  where (cs,rm) = nestcomment n ss
+nestcomment n [] = ([],[])
+
+eolcomment :: String -> (String,String)
+eolcomment s@('\n':_) = ([], s)
+eolcomment (c:s)      = (c:cs, s') where (cs,s') = eolcomment s
+eolcomment []         = ([],[])
+
+-- Classify tokens
+data TokenType =
+  Space | Keyword | Keyglyph | Layout | Comment | Conid | Varid |
+  Conop | Varop   | String   | Char   | Number  | Error
+  deriving (Eq,Show)
+
+classify :: String -> TokenType
+classify s@(h:_)
+    | isSpace h              = Space
+    | all (=='-') s          = Comment
+    | "--" `isPrefixOf` s
+      && any isSpace s       = Comment		-- not fully correct
+    | "{-" `isPrefixOf` s    = Comment
+    | s `elem` keywords      = Keyword
+    | s `elem` keyglyphs     = Keyglyph
+    | s `elem` layoutchars   = Layout
+    | isUpper h              = Conid
+    | isLower h              = Varid
+    | h `elem` symbols       = Varop
+    | h==':'                 = Conop
+    | h=='`'                 = Varop
+    | h=='"'                 = String
+    | h=='\''                = Char
+    | isDigit h              = Number
+    | otherwise              = Error
+
+-- Haskell keywords
+keywords =
+  ["case","class","data","default","deriving","do","else"
+  ,"if","import","in","infix","infixl","infixr","instance","let","module"
+  ,"newtype","of","then","type","where","_","foreign","ccall","as"]
+keyglyphs =
+  ["..","::","=","\\","|","<-","->","@","~","=>","[","]"]
+layoutchars =
+  map (:[]) ";{}(),"
+symbols =
+  "!#$%&*+./<=>?@\\^|-~"
diff --git a/Language/Haskell/HsColour/ColourHighlight.hs b/Language/Haskell/HsColour/ColourHighlight.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/ColourHighlight.hs
@@ -0,0 +1,20 @@
+module Language.Haskell.HsColour.ColourHighlight
+  ( Colour(..)
+  , Highlight(..)
+  ) where
+
+data Colour = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White
+  deriving (Eq,Show,Read,Enum)
+
+data Highlight =
+    Normal
+  | Bold
+  | Dim
+  | Underscore
+  | Blink
+  | ReverseVideo
+  | Concealed
+  | Foreground Colour
+  | Background Colour
+  deriving (Eq,Show,Read)
+
diff --git a/Language/Haskell/HsColour/Colourise.hs b/Language/Haskell/HsColour/Colourise.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/Colourise.hs
@@ -0,0 +1,64 @@
+module Language.Haskell.HsColour.Colourise
+  ( module Language.Haskell.HsColour.ColourHighlight
+  , ColourPrefs(..)
+  , readColourPrefs
+  , colourise
+  ) where
+
+import Language.Haskell.HsColour.ColourHighlight
+import Language.Haskell.HsColour.Classify (TokenType(..))
+
+import System (getEnv)
+import Char
+import List
+
+-- | Colour preferences.
+data ColourPrefs = ColourPrefs
+  { keyword, keyglyph, layout, comment
+  , conid, varid, conop, varop
+  , string, char, number
+  , selection, variantselection :: [Highlight]
+  } deriving (Eq,Show,Read)
+
+defaultColourPrefs = ColourPrefs
+  { keyword  = [Foreground Green,Underscore]
+  , keyglyph = [Foreground Red]
+  , layout   = [Foreground Cyan]
+  , comment  = [Foreground Blue]
+  , conid    = [Normal]
+  , varid    = [Normal]
+  , conop    = [Foreground Red,Bold]
+  , varop    = [Foreground Cyan]
+  , string   = [Foreground Magenta]
+  , char     = [Foreground Magenta]
+  , number   = [Foreground Magenta]
+  , selection = [Bold, Foreground Magenta]
+  , variantselection = [Dim, Foreground Red, Underscore]
+  }
+
+readColourPrefs :: IO ColourPrefs
+readColourPrefs = catch
+  (do val <- readFile ".hscolour"
+      return (read val))
+  (\e-> catch
+    (do home <- getEnv "HOME"
+        val <- readFile (home++"/.hscolour")
+        return (read val))
+    (\e-> return defaultColourPrefs))
+
+-- Convert classification to colour highlights.
+colourise :: ColourPrefs -> TokenType -> [Highlight]
+colourise pref Space    = [Normal]
+colourise pref Comment  = comment pref
+colourise pref Keyword  = keyword pref
+colourise pref Keyglyph = keyglyph pref
+colourise pref Layout   = layout pref
+colourise pref Conid    = conid pref
+colourise pref Varid    = varid pref
+colourise pref Conop    = conop pref
+colourise pref Varop    = varop pref
+colourise pref String   = string pref
+colourise pref Char     = char pref
+colourise pref Number   = number pref
+colourise pref Error    = selection pref
+
diff --git a/Language/Haskell/HsColour/HTML.hs b/Language/Haskell/HsColour/HTML.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/HTML.hs
@@ -0,0 +1,68 @@
+-- | Formats Haskell source code using HTML with font tags.
+module Language.Haskell.HsColour.HTML 
+    (hscolour, 
+     -- * Internals
+     renderAnchors, renderComment, escape) where
+
+import Language.Haskell.HsColour.Anchors
+import Language.Haskell.HsColour.Classify as Classify
+import Language.Haskell.HsColour.Colourise
+
+import Data.Char(isAlphaNum)
+
+
+-- | Formats Haskell source code using HTML with font tags.
+hscolour :: ColourPrefs -- ^ Colour preferences.
+         -> Bool        -- ^ Whether to include anchors
+         -> String      -- ^ Haskell source code.
+         -> String      -- ^ Coloured Haskell source code.
+hscolour pref anchor = 
+    top'n'tail . (if anchor then concatMap (renderAnchors (renderToken pref)) 
+                                   . insertAnchors
+                            else concatMap (renderToken pref)) . tokenise
+
+top'n'tail :: String -> String
+top'n'tail = ("<pre>"++) . (++"</pre>")
+
+renderToken :: ColourPrefs -> (TokenType,String) -> String
+renderToken pref (t,s) = fontify (colourise pref t)
+                         (if t == Comment then renderComment s else escape s)
+
+renderAnchors :: ((TokenType,String)->String)
+                 -> Either String (TokenType,String) -> String
+renderAnchors _      (Left v) = "<a name=\""++v++"\"></a>"
+renderAnchors render (Right r) = render r
+
+-- if there are http://links/ in a comment, turn them into
+-- hyperlinks
+renderComment :: String -> String
+renderComment xs@('h':'t':'t':'p':':':'/':'/':_) =
+        renderLink a ++ renderComment b
+    where
+        -- see http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters
+        isUrlChar x = isAlphaNum x || x `elem` ":/?#[]@!$&'()*+,;=-._~%"
+        (a,b) = span isUrlChar xs
+        renderLink link = "<a href=\"" ++ link ++ "\">" ++ escape link ++ "</a>"
+        
+renderComment (x:xs) = escape [x] ++ renderComment xs
+renderComment [] = []
+
+-- Html stuff
+fontify [] s     = s
+fontify (h:hs) s = font h (fontify hs s)
+
+font Normal         s = s
+font Bold           s = "<b>"++s++"</b>"
+font Dim            s = "<em>"++s++"</em>"
+font Underscore     s = "<u>"++s++"</u>"
+font Blink          s = "<blink>"++s++"</blink>"
+font ReverseVideo   s = s
+font Concealed      s = s
+font (Foreground c) s = "<font color="++show c++">"++s++"</font>"
+font (Background c) s = "<font bgcolor="++show c++">"++s++"</font>"
+
+escape ('<':cs) = "&lt;"++escape cs
+escape ('>':cs) = "&gt;"++escape cs
+escape ('&':cs) = "&amp;"++escape cs
+escape (c:cs)   = c: escape cs
+escape []       = []
diff --git a/Language/Haskell/HsColour/LaTeX.hs b/Language/Haskell/HsColour/LaTeX.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/LaTeX.hs
@@ -0,0 +1,111 @@
+-- | Formats Haskell source code using LaTeX macros.
+module Language.Haskell.HsColour.LaTeX (hscolour, hscolourFragment) where
+
+import Language.Haskell.HsColour.Classify as Classify
+import Language.Haskell.HsColour.Colourise
+
+-- | Formats Haskell source code as a complete LaTeX document.
+hscolour :: ColourPrefs -- ^ Colour preferences.
+         -> String      -- ^ Haskell source code.
+         -> String      -- ^ An LaTeX document containing the coloured 
+                        --   Haskell source code.
+hscolour pref = top'n'tail . hscolourFragment pref
+
+-- | Formats Haskell source code as an LaTeX fragment.
+hscolourFragment :: ColourPrefs -- ^ Colour preferences.
+                 -> String -- ^ Haskell source code.
+                 -> String -- ^ An LaTeX fragment containing the coloured 
+                           --   Haskell source code.
+hscolourFragment pref = concatMap (renderToken pref) . tokenise
+
+top'n'tail :: String -> String
+top'n'tail  = (latexPrefix++) . (++latexSuffix)
+
+-- | Wrap each lexeme in the appropriate LaTeX macro.
+--   TODO: filter dangerous characters like "{}_$"
+renderToken :: ColourPrefs -> (TokenType,String) -> String
+renderToken pref (Space,text) = filterSpace text
+renderToken pref (cls,text)   = let 
+	symb = case cls of
+		String -> "``" ++ (reverse . tail . reverse . tail $ text) ++ "''"
+		_      -> text
+	style = colourise pref cls
+	(pre, post) = unzip $ map latexHighlight style in
+	(concat pre) ++ filterSpecial symb ++ (concat post) 
+
+-- | Filter white space characters.
+filterSpace :: String
+            -> String
+filterSpace ('\n':ss) = '\\':'\\':(filterSpace ss)
+filterSpace (' ':ss)  = "\\hsspace "++(filterSpace ss)
+filterSpace ('\t':ss) = "\\hstab "++(filterSpace ss)
+filterSpace (c:ss)    = c:(filterSpace ss)
+filterSpace []        = []
+
+-- | Filters the characters "#$%&~_^\{}" which are special
+--   in LaTeX.
+filterSpecial :: String  -- ^ The string to filter. 
+              -> String  -- ^ The LaTeX-safe string.
+filterSpecial ('#':cs)  = '\\':'#':(filterSpecial cs)
+filterSpecial ('$':cs)  = '\\':'$':(filterSpecial cs)
+filterSpecial ('%':cs)  = '\\':'%':(filterSpecial cs)
+filterSpecial ('&':cs)  = '\\':'&':(filterSpecial cs)
+filterSpecial ('~':cs)  = "\\tilde{ }"++(filterSpecial cs)
+filterSpecial ('_':cs)  = '\\':'_':(filterSpecial cs)
+filterSpecial ('^':cs)  = "\\hat{ }"++(filterSpecial cs)
+filterSpecial ('\\':cs) = "$\\backslash$"++(filterSpecial cs)
+filterSpecial ('{':cs)  = '\\':'{':(filterSpecial cs)
+filterSpecial ('}':cs)  = '\\':'}':(filterSpecial cs)
+filterSpecial ('|':cs)  = "\\ensuremath{|}"++(filterSpecial cs)
+filterSpecial ('<':'-':cs)  = "\\ensuremath{\\leftarrow}"++(filterSpecial cs)
+filterSpecial ('<':cs)  = "\\ensuremath{\\langle}"++(filterSpecial cs)
+filterSpecial ('-':'>':cs)  = "\\ensuremath{\\rightarrow}"++(filterSpecial cs)
+filterSpecial ('>':cs)  = "\\ensuremath{\\rangle}"++(filterSpecial cs)
+filterSpecial (c:cs)    = c:(filterSpecial cs)
+filterSpecial []        = []
+
+
+-- | Constructs the appropriate LaTeX macro for the given style.
+latexHighlight :: Highlight -> (String, String)
+latexHighlight Normal         = ("{\\rm{}", "}")
+latexHighlight Bold           = ("{\\bf{}", "}")
+latexHighlight Dim            = ("", "")
+latexHighlight Underscore     = ("\\underline{", "}")
+latexHighlight Blink          = ("", "")
+latexHighlight ReverseVideo   = ("", "")
+latexHighlight Concealed      = ("\\conceal{", "}")
+latexHighlight (Foreground c) = ("\\textcolor{"++ latexColour c ++"}{", "}")
+latexHighlight (Background c) = ("\\colorbox{"++ latexColour c ++"}{", "}")
+
+-- | Translate a 'Colour' into a LaTeX colour name.
+latexColour :: Colour -> String
+latexColour Black   = "black"
+latexColour Red     = "red"
+latexColour Green   = "green"
+latexColour Yellow  = "yellow"
+latexColour Blue    = "blue"
+latexColour Magenta = "magenta"
+latexColour Cyan    = "cyan"
+latexColour White   = "white"
+
+-- | Generic LaTeX document preamble.
+latexPrefix = unlines
+    ["\\documentclass[a4paper, 12pt]{article}"
+    ,"\\usepackage[usenames]{color}"
+    ,"\\usepackage{hyperref}"
+    ,"\\newsavebox{\\spaceb}"
+    ,"\\newsavebox{\\tabb}"
+    ,"\\savebox{\\spaceb}[1ex]{~}"
+    ,"\\savebox{\\tabb}[4ex]{~}"
+    ,"\\newcommand{\\hsspace}{\\usebox{\\spaceb}}"
+    ,"\\newcommand{\\hstab}{\\usebox{\\tabb}}"
+    ,"\\newcommand{\\conceal}[1]{}"
+    ,"\\begin{document}"
+    ,"\\noindent"
+    ]
+
+-- | Generic LaTeX document postamble.
+latexSuffix = unlines
+    [""
+    ,"\\end{document}"
+    ]
diff --git a/Language/Haskell/HsColour/TTY.hs b/Language/Haskell/HsColour/TTY.hs
new file mode 100644
--- /dev/null
+++ b/Language/Haskell/HsColour/TTY.hs
@@ -0,0 +1,15 @@
+-- | Highlights Haskell code with ANSI terminal codes.
+module Language.Haskell.HsColour.TTY (hscolour) where
+
+import Language.Haskell.HsColour.ANSI as ANSI
+import Language.Haskell.HsColour.Classify
+import Language.Haskell.HsColour.Colourise
+
+-- | Highlights Haskell code with ANSI terminal codes.
+hscolour :: ColourPrefs -- ^ Colour preferences.
+         -> String      -- ^ Haskell source code.
+         -> String      -- ^ Coloured Haskell source code.
+hscolour pref = concatMap (renderToken pref) . tokenise
+
+renderToken :: ColourPrefs -> (TokenType,String) -> String
+renderToken pref (t,s) = ANSI.highlight (colourise pref t) s
diff --git a/Makefile b/Makefile
new file mode 100644
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,47 @@
+LIBRARY	= hscolour
+VERSION	= 1.6
+
+DIRS	= Language/Haskell/HsColour
+
+SRCS	= Language/Haskell/HsColour.hs \
+	  Language/Haskell/HsColour/ANSI.hs \
+	  Language/Haskell/HsColour/Anchors.hs \
+	  Language/Haskell/HsColour/CSS.hs \
+	  Language/Haskell/HsColour/Classify.hs \
+	  Language/Haskell/HsColour/ColourHighlight.hs \
+	  Language/Haskell/HsColour/Colourise.hs \
+	  Language/Haskell/HsColour/HTML.hs \
+	  Language/Haskell/HsColour/LaTeX.hs \
+	  Language/Haskell/HsColour/TTY.hs
+
+AUX	= README LICENCE* $(LIBRARY).cabal Setup.hs Makefile \
+	  HsColour.hs hscolour.css .hscolour \
+	  index.html docs/*
+
+#all: $(LIBRARY)
+executable: $(SRCS) HsColour.hs
+	ghc --make HsColour
+	mv a.out $(LIBRARY)
+package:
+	tar cf tmp.tar $(SRCS) $(AUX)
+	mkdir $(LIBRARY)-$(VERSION)
+	cd $(LIBRARY)-$(VERSION); tar xf ../tmp.tar
+	tar zcf $(LIBRARY)-$(VERSION).tar.gz $(LIBRARY)-$(VERSION)
+	zip -r $(LIBRARY)-$(VERSION).zip $(LIBRARY)-$(VERSION)
+	rm -r tmp.tar $(LIBRARY)-$(VERSION)
+haddock: $(SRCS)
+	mkdir -p docs/$(LIBRARY)
+	for dir in $(DIRS); do mkdir -p docs/$(LIBRARY)/$$dir; done
+	for file in $(SRCS); \
+	    do HsColour -anchorHTML $$file \
+	          >docs/$(LIBRARY)/`dirname $$file`/`basename $$file .hs`.html;\
+	    done
+	haddock --html --title=$(LIBRARY) --odir=docs/$(LIBRARY) \
+	    --package=$(LIBRARY) \
+	    --source-module="%{MODULE/.//}.html" \
+	    --source-entity="%{MODULE/.//}.html#%{NAME}" \
+	    $(SRCS)
+
+$(LIBRARY): $(SRCS)
+	$(HC) $(HFLAGS) $(HEAP) -o $@  $(SRCS)
+	$(STRIP) $@
diff --git a/README b/README
new file mode 100644
--- /dev/null
+++ b/README
@@ -0,0 +1,55 @@
+HsColour: A Haskell source-code colouriser.
+-------------------------------------------
+Copyright:  2003-2006, Malcolm Wallace, University of York
+Licence:    GPL
+
+Building:
+    hmake HsColour
+or
+    ghc --make HsColour
+
+Usage:
+    HsColour [ -tty | -html | -css | -anchorHTML | -anchorCSS ] [file.hs]
+
+The program can colourise a Haskell source file for either terminal
+output (option -tty) or HTML output with font tags (option -html), or
+HTML output with CSS (option -css).  The default is for terminal output,
+which uses standard ANSI screen codes for the colours.
+
+If no file argument is given, it reads standard input.  Output is
+always written to standard output.
+
+HsColour can add named anchors (with -anchorHTML or -anchorCSS) to
+top-level definitions in the source file (functions, datatypes,
+classes).  This enables you to make links to a specific location in the
+generated file with the standard "file.html#anchor" notation.
+
+You can configure the colours for different lexical entities by
+editing a configuration file called .hscolour in the current directory.
+(An example is included in the distribution.)  The file format is as
+a simple Haskell value of type ColourPrefs, constructed using named
+fields, as follows:
+
+  data ColourPrefs = ColourPrefs
+    { keyword, keyglyph, layout, comment
+    , conid, varid, conop, varop
+    , string, char, number
+    , selection, variantselection :: [Highlight]
+    }
+
+  data Colour = Black | Red | Green | Yellow | Blue | Magenta | Cyan | White
+
+  data Highlight =
+      Normal
+    | Bold
+    | Dim
+    | Underscore
+    | Blink
+    | ReverseVideo
+    | Concealed
+    | Foreground Colour
+    | Background Colour
+
+For CSS output, it is sufficient to edit the hscolour.css file, also in
+the distribution.
+
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,4 @@
+#!/usr/bin/env runghc
+
+import Distribution.Simple
+main = defaultMain
diff --git a/docs/hscolour/Language-Haskell-HsColour-ANSI.html b/docs/hscolour/Language-Haskell-HsColour-ANSI.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-ANSI.html
@@ -0,0 +1,532 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.ANSI</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.ANSI</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Ahighlight"
+></A
+><B
+>highlight</B
+> :: [<A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Highlight</A
+>] -&gt; String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#highlight"
+>Source</A
+></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%3Acls"
+></A
+><B
+>cls</B
+> :: String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#cls"
+>Source</A
+></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%3Agoto"
+></A
+><B
+>goto</B
+> :: Int -&gt; Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#goto"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AHighlight"
+></A
+><B
+>Highlight</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#Highlight"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ANormal"
+></A
+><B
+>Normal</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABold"
+></A
+><B
+>Bold</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ADim"
+></A
+><B
+>Dim</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AUnderscore"
+></A
+><B
+>Underscore</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlink"
+></A
+><B
+>Blink</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AReverseVideo"
+></A
+><B
+>ReverseVideo</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AConcealed"
+></A
+><B
+>Concealed</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AForeground"
+></A
+><B
+>Foreground</B
+> <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABackground"
+></A
+><B
+>Background</B
+> <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Highlight')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Highlight" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Enum <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AColour"
+></A
+><B
+>Colour</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#Colour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlack"
+></A
+><B
+>Black</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARed"
+></A
+><B
+>Red</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AGreen"
+></A
+><B
+>Green</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AYellow"
+></A
+><B
+>Yellow</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlue"
+></A
+><B
+>Blue</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AMagenta"
+></A
+><B
+>Magenta</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ACyan"
+></A
+><B
+>Cyan</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AWhite"
+></A
+><B
+>White</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Colour')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Colour" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Enum <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+></TABLE
+></DIV
+></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%3AcolourCycle"
+></A
+><B
+>colourCycle</B
+> :: [<A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Colour</A
+>]</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#colourCycle"
+>Source</A
+></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%3AenableScrollRegion"
+></A
+><B
+>enableScrollRegion</B
+> :: Int -&gt; Int -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ANSI.html#enableScrollRegion"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-Anchors.html b/docs/hscolour/Language-Haskell-HsColour-Anchors.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-Anchors.html
@@ -0,0 +1,155 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.Anchors</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/Anchors.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.Anchors</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AinsertAnchors"
+>insertAnchors</A
+> :: [(<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String)] -&gt; [Either Anchor (<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String)]</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3AinsertAnchors"
+></A
+><B
+>insertAnchors</B
+> :: [(<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String)] -&gt; [Either Anchor (<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String)]</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Anchors.html#insertAnchors"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="doc"
+><TT
+><A HREF="Language-Haskell-HsColour-Anchors.html#v%3AinsertAnchors"
+>insertAnchors</A
+></TT
+> places an anchor marker in the token stream before the
+   first defining occurrence of any identifier.  Here, <EM
+>before</EM
+> means
+   immediately preceding its type signature, or preceding a (haddock)
+   comment that comes immediately before the type signature, or failing
+   either of those, before the first equation.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-CSS.html b/docs/hscolour/Language-Haskell-HsColour-CSS.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-CSS.html
@@ -0,0 +1,240 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.CSS</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/CSS.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.CSS</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Formats Haskell source code as HTML with CSS.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ahscolour"
+>hscolour</A
+> :: Bool -&gt; String -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AhscolourFragment"
+>hscolourFragment</A
+> :: Bool -&gt; String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Ahscolour"
+></A
+><B
+>hscolour</B
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/CSS.html#hscolour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>:: Bool</TD
+><TD CLASS="rdoc"
+>Whether to include anchors
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>An HTML document containing the coloured 
+   Haskell source code.
+</TD
+></TR
+><TR
+><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%3AhscolourFragment"
+></A
+><B
+>hscolourFragment</B
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/CSS.html#hscolourFragment"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>:: Bool</TD
+><TD CLASS="rdoc"
+>Whether to include anchors
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>An HTML fragment containing the coloured 
+   Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="ndoc" COLSPAN="2"
+>Formats Haskell source code as an HTML fragment with CSS.
+   No stylesheet link is included in the output.
+</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-Classify.html b/docs/hscolour/Language-Haskell-HsColour-Classify.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-Classify.html
@@ -0,0 +1,309 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.Classify</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/Classify.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.Classify</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3ATokenType"
+></A
+><B
+>TokenType</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Classify.html#TokenType"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ASpace"
+></A
+><B
+>Space</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AKeyword"
+></A
+><B
+>Keyword</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AKeyglyph"
+></A
+><B
+>Keyglyph</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ALayout"
+></A
+><B
+>Layout</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AComment"
+></A
+><B
+>Comment</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AConid"
+></A
+><B
+>Conid</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AVarid"
+></A
+><B
+>Varid</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AConop"
+></A
+><B
+>Conop</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AVarop"
+></A
+><B
+>Varop</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AString"
+></A
+><B
+>String</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AChar"
+></A
+><B
+>Char</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ANumber"
+></A
+><B
+>Number</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AError"
+></A
+><B
+>Error</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TokenType')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:TokenType" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+></TD
+></TR
+></TABLE
+></DIV
+></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%3Atokenise"
+></A
+><B
+>tokenise</B
+> :: String -&gt; [(<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String)]</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Classify.html#tokenise"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html b/docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-ColourHighlight.html
@@ -0,0 +1,418 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.ColourHighlight</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/ColourHighlight.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.ColourHighlight</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AColour"
+></A
+><B
+>Colour</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ColourHighlight.html#Colour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlack"
+></A
+><B
+>Black</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ARed"
+></A
+><B
+>Red</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AGreen"
+></A
+><B
+>Green</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AYellow"
+></A
+><B
+>Yellow</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlue"
+></A
+><B
+>Blue</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AMagenta"
+></A
+><B
+>Magenta</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ACyan"
+></A
+><B
+>Cyan</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AWhite"
+></A
+><B
+>White</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Colour')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Colour" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Enum <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AHighlight"
+></A
+><B
+>Highlight</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/ColourHighlight.html#Highlight"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ANormal"
+></A
+><B
+>Normal</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABold"
+></A
+><B
+>Bold</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ADim"
+></A
+><B
+>Dim</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AUnderscore"
+></A
+><B
+>Underscore</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABlink"
+></A
+><B
+>Blink</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AReverseVideo"
+></A
+><B
+>ReverseVideo</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AConcealed"
+></A
+><B
+>Concealed</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AForeground"
+></A
+><B
+>Foreground</B
+> <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ABackground"
+></A
+><B
+>Background</B
+> <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Colour</A
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Highlight')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:Highlight" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Enum <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+></TD
+></TR
+></TABLE
+></DIV
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-Colourise.html b/docs/hscolour/Language-Haskell-HsColour-Colourise.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-Colourise.html
@@ -0,0 +1,400 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.Colourise</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/Colourise.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.Colourise</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>module <A HREF="Language-Haskell-HsColour-ColourHighlight.html"
+>Language.Haskell.HsColour.ColourHighlight</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AColourPrefs"
+>ColourPrefs</A
+>  = <A HREF="#v%3AColourPrefs"
+>ColourPrefs</A
+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3Akeyword"
+>keyword</A
+>, <A HREF="#v%3Akeyglyph"
+>keyglyph</A
+>, <A HREF="#v%3Alayout"
+>layout</A
+>, <A HREF="#v%3Acomment"
+>comment</A
+>, <A HREF="#v%3Aconid"
+>conid</A
+>, <A HREF="#v%3Avarid"
+>varid</A
+>, <A HREF="#v%3Aconop"
+>conop</A
+>, <A HREF="#v%3Avarop"
+>varop</A
+>, <A HREF="#v%3Astring"
+>string</A
+>, <A HREF="#v%3Achar"
+>char</A
+>, <A HREF="#v%3Anumber"
+>number</A
+>, <A HREF="#v%3Aselection"
+>selection</A
+>, <A HREF="#v%3Avariantselection"
+>variantselection</A
+> :: [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+></TR
+></TABLE
+>}</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3AreadColourPrefs"
+>readColourPrefs</A
+> :: IO <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Acolourise"
+>colourise</A
+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+> -&gt; <A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+> -&gt; [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>module <A HREF="Language-Haskell-HsColour-ColourHighlight.html"
+>Language.Haskell.HsColour.ColourHighlight</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AColourPrefs"
+></A
+><B
+>ColourPrefs</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Colourise.html#ColourPrefs"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>Colour preferences.
+</TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AColourPrefs"
+></A
+><B
+>ColourPrefs</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="body" COLSPAN="2"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3Akeyword"
+></A
+><B
+>keyword</B
+>, <A NAME="v%3Akeyglyph"
+></A
+><B
+>keyglyph</B
+>, <A NAME="v%3Alayout"
+></A
+><B
+>layout</B
+>, <A NAME="v%3Acomment"
+></A
+><B
+>comment</B
+>, <A NAME="v%3Aconid"
+></A
+><B
+>conid</B
+>, <A NAME="v%3Avarid"
+></A
+><B
+>varid</B
+>, <A NAME="v%3Aconop"
+></A
+><B
+>conop</B
+>, <A NAME="v%3Avarop"
+></A
+><B
+>varop</B
+>, <A NAME="v%3Astring"
+></A
+><B
+>string</B
+>, <A NAME="v%3Achar"
+></A
+><B
+>char</B
+>, <A NAME="v%3Anumber"
+></A
+><B
+>number</B
+>, <A NAME="v%3Aselection"
+></A
+><B
+>selection</B
+>, <A NAME="v%3Avariantselection"
+></A
+><B
+>variantselection</B
+> :: [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ColourPrefs')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:ColourPrefs" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+></TABLE
+></DIV
+></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%3AreadColourPrefs"
+></A
+><B
+>readColourPrefs</B
+> :: IO <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Colourise.html#readColourPrefs"
+>Source</A
+></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%3Acolourise"
+></A
+><B
+>colourise</B
+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+> -&gt; <A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+> -&gt; [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/Colourise.html#colourise"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-HTML.html b/docs/hscolour/Language-Haskell-HsColour-HTML.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-HTML.html
@@ -0,0 +1,284 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.HTML</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/HTML.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.HTML</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="section4"
+><B
+>Contents</B
+></TD
+></TR
+><TR
+><TD
+><DL
+><DT
+><A HREF="#1"
+>Internals
+</A
+></DT
+></DL
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Formats Haskell source code using HTML with font tags.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ahscolour"
+>hscolour</A
+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+> -&gt; Bool -&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"
+>TokenType</A
+>, String) -&gt; String) -&gt; Either String (<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String) -&gt; String</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3ArenderComment"
+>renderComment</A
+> :: String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Ahscolour"
+></A
+><B
+>hscolour</B
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/HTML.html#hscolour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>:: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+><TD CLASS="rdoc"
+>Colour preferences.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; Bool</TD
+><TD CLASS="rdoc"
+>Whether to include anchors
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Coloured Haskell source code.
+</TD
+></TR
+><TR
+><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="section1"
+><A NAME="1"
+>Internals
+</A
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3ArenderAnchors"
+></A
+><B
+>renderAnchors</B
+> :: ((<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String) -&gt; String) -&gt; Either String (<A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>TokenType</A
+>, String) -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/HTML.html#renderAnchors"
+>Source</A
+></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%3ArenderComment"
+></A
+><B
+>renderComment</B
+> :: String -&gt; String</TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/HTML.html#renderComment"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour-TTY.html b/docs/hscolour/Language-Haskell-HsColour-TTY.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour-TTY.html
@@ -0,0 +1,177 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour.TTY</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour/TTY.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour.TTY</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+>Highlights Haskell code with ANSI terminal codes.
+</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ahscolour"
+>hscolour</A
+> :: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+> -&gt; String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><A NAME="v%3Ahscolour"
+></A
+><B
+>hscolour</B
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour/TTY.html#hscolour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>:: <A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+><TD CLASS="rdoc"
+>Colour preferences.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Coloured Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="ndoc" COLSPAN="2"
+>Highlights Haskell code with ANSI terminal codes.
+</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language-Haskell-HsColour.html b/docs/hscolour/Language-Haskell-HsColour.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language-Haskell-HsColour.html
@@ -0,0 +1,549 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>Language.Haskell.HsColour</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="Language/Haskell/HsColour.html"
+>Source code</A
+></TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="modulebar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><FONT SIZE="6"
+>Language.Haskell.HsColour</FONT
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Description</TD
+></TR
+><TR
+><TD CLASS="doc"
+><P
+>This is a library with colourises Haskell code. 
+   It currently has three output formats: 
+</P
+><UL
+><LI
+> ANSI terminal codes
+</LI
+><LI
+> LaTeX macros
+</LI
+><LI
+> HTML with font tags
+</LI
+><LI
+> HTML with CSS.
+</LI
+></UL
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Synopsis</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AOutput"
+>Output</A
+> </TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>= <A HREF="#v%3ATTY"
+>TTY</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ALaTeX"
+>LaTeX</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3AHTML"
+>HTML</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>| <A HREF="#v%3ACSS"
+>CSS</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A HREF="#t%3AColourPrefs"
+>ColourPrefs</A
+>  = <A HREF="#v%3AColourPrefs"
+>ColourPrefs</A
+> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="recfield"
+><A HREF="#v%3Akeyword"
+>keyword</A
+>, <A HREF="#v%3Akeyglyph"
+>keyglyph</A
+>, <A HREF="#v%3Alayout"
+>layout</A
+>, <A HREF="#v%3Acomment"
+>comment</A
+>, <A HREF="#v%3Aconid"
+>conid</A
+>, <A HREF="#v%3Avarid"
+>varid</A
+>, <A HREF="#v%3Aconop"
+>conop</A
+>, <A HREF="#v%3Avarop"
+>varop</A
+>, <A HREF="#v%3Astring"
+>string</A
+>, <A HREF="#v%3Achar"
+>char</A
+>, <A HREF="#v%3Anumber"
+>number</A
+>, <A HREF="#v%3Aselection"
+>selection</A
+>, <A HREF="#v%3Avariantselection"
+>variantselection</A
+> :: [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+></TR
+></TABLE
+>}</TD
+></TR
+><TR
+><TD CLASS="s8"
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+><A HREF="#v%3Ahscolour"
+>hscolour</A
+> :: <A HREF="Language-Haskell-HsColour.html#t%3AOutput"
+>Output</A
+> -&gt; <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>ColourPrefs</A
+> -&gt; Bool -&gt; String -&gt; String</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Documentation</TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AOutput"
+></A
+><B
+>Output</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour.html#Output"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>The supported output formats.
+</TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ATTY"
+></A
+><B
+>TTY</B
+></TD
+><TD CLASS="rdoc"
+>ANSI terminal codes
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ALaTeX"
+></A
+><B
+>LaTeX</B
+></TD
+><TD CLASS="rdoc"
+>TeX macros
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AHTML"
+></A
+><B
+>HTML</B
+></TD
+><TD CLASS="rdoc"
+>HTML with font tags
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+><A NAME="v%3ACSS"
+></A
+><B
+>CSS</B
+></TD
+><TD CLASS="rdoc"
+>HTML with CSS.
+</TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="topdecl"
+><TABLE CLASS="declbar"
+><TR
+><TD CLASS="declname"
+><SPAN CLASS="keyword"
+>data</SPAN
+> <A NAME="t%3AColourPrefs"
+></A
+><B
+>ColourPrefs</B
+> </TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour.html#ColourPrefs"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="ndoc"
+>Colour preferences.
+</TD
+></TR
+><TR
+><TD CLASS="section4"
+>Constructors</TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3AColourPrefs"
+></A
+><B
+>ColourPrefs</B
+></TD
+><TD CLASS="rdoc"
+></TD
+></TR
+><TR
+><TD CLASS="body" COLSPAN="2"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+><A NAME="v%3Akeyword"
+></A
+><B
+>keyword</B
+>, <A NAME="v%3Akeyglyph"
+></A
+><B
+>keyglyph</B
+>, <A NAME="v%3Alayout"
+></A
+><B
+>layout</B
+>, <A NAME="v%3Acomment"
+></A
+><B
+>comment</B
+>, <A NAME="v%3Aconid"
+></A
+><B
+>conid</B
+>, <A NAME="v%3Avarid"
+></A
+><B
+>varid</B
+>, <A NAME="v%3Aconop"
+></A
+><B
+>conop</B
+>, <A NAME="v%3Avarop"
+></A
+><B
+>varop</B
+>, <A NAME="v%3Astring"
+></A
+><B
+>string</B
+>, <A NAME="v%3Achar"
+></A
+><B
+>char</B
+>, <A NAME="v%3Anumber"
+></A
+><B
+>number</B
+>, <A NAME="v%3Aselection"
+></A
+><B
+>selection</B
+>, <A NAME="v%3Avariantselection"
+></A
+><B
+>variantselection</B
+> :: [<A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Highlight</A
+>]</TD
+><TD CLASS="rdoc"
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section4"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ColourPrefs')" ALT="show/hide"
+> Instances</TD
+></TR
+><TR
+><TD CLASS="body"
+><DIV ID="i:ColourPrefs" STYLE="display:block;"
+><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
+><TR
+><TD CLASS="decl"
+>Eq <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Read <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+><TR
+><TD CLASS="decl"
+>Show <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+></TR
+></TABLE
+></DIV
+></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%3Ahscolour"
+></A
+><B
+>hscolour</B
+></TD
+><TD CLASS="declbut"
+><A HREF="Language/Haskell/HsColour.html#hscolour"
+>Source</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="body"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="arg"
+>:: <A HREF="Language-Haskell-HsColour.html#t%3AOutput"
+>Output</A
+></TD
+><TD CLASS="rdoc"
+>Output format.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>ColourPrefs</A
+></TD
+><TD CLASS="rdoc"
+>Colour preferences for formats that support it.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; Bool</TD
+><TD CLASS="rdoc"
+>Whether to include anchors.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="arg"
+>-&gt; String</TD
+><TD CLASS="rdoc"
+>Coloured Haskell source code.
+</TD
+></TR
+><TR
+><TD CLASS="ndoc" COLSPAN="2"
+>Colourise Haskell source code with the give output format.
+</TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/Language/Haskell/HsColour.html b/docs/hscolour/Language/Haskell/HsColour.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour.html
@@ -0,0 +1,37 @@
+<pre><font color=Blue>-- | This is a library with colourises Haskell code. </font>
+<font color=Blue>--   It currently has three output formats: </font>
+<font color=Blue>--</font>
+<font color=Blue>-- * ANSI terminal codes</font>
+<font color=Blue>--</font>
+<font color=Blue>-- * LaTeX macros</font>
+<font color=Blue>--</font>
+<font color=Blue>-- * HTML with font tags</font>
+<font color=Blue>--</font>
+<font color=Blue>-- * HTML with CSS.</font>
+<font color=Blue>--</font>
+<u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour <font color=Cyan>(</font>Output<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>,</font>
+                                  hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise <font color=Cyan>(</font>ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>
+<u><font color=Green>import</font></u> qualified Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY  <u><font color=Green>as</font></u> TTY
+<u><font color=Green>import</font></u> qualified Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <u><font color=Green>as</font></u> HTML
+<u><font color=Green>import</font></u> qualified Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>CSS  <u><font color=Green>as</font></u> CSS
+<u><font color=Green>import</font></u> qualified Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>LaTeX  <u><font color=Green>as</font></u> LaTeX
+
+<font color=Blue>-- | The supported output formats.</font>
+<a name="Output"></a><u><font color=Green>data</font></u> Output <font color=Red>=</font> TTY   <font color=Blue>-- ^ ANSI terminal codes</font>
+            <font color=Red>|</font> LaTeX <font color=Blue>-- ^ TeX macros</font>
+            <font color=Red>|</font> HTML  <font color=Blue>-- ^ HTML with font tags</font>
+            <font color=Red>|</font> CSS   <font color=Blue>-- ^ HTML with CSS.</font>
+
+<font color=Blue>-- | Colourise Haskell source code with the give output format.</font>
+hscolour <font color=Red>::</font> Output      <font color=Blue>-- ^ Output format.</font>
+         <font color=Red>-&gt;</font> ColourPrefs <font color=Blue>-- ^ Colour preferences for formats that support it.</font>
+         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors.</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
+<a name="hscolour"></a>hscolour TTY   pref <u><font color=Green>_</font></u>      <font color=Red>=</font> TTY<font color=Cyan>.</font>hscolour pref
+hscolour LaTeX pref <u><font color=Green>_</font></u>      <font color=Red>=</font> LaTeX<font color=Cyan>.</font>hscolour pref
+hscolour HTML  pref anchor <font color=Red>=</font> HTML<font color=Cyan>.</font>hscolour pref anchor
+hscolour CSS   <u><font color=Green>_</font></u>    anchor <font color=Red>=</font> CSS<font color=Cyan>.</font>hscolour anchor
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/ANSI.html b/docs/hscolour/Language/Haskell/HsColour/ANSI.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/ANSI.html
@@ -0,0 +1,94 @@
+<pre><font color=Blue>-- Partially taken from Hugs AnsiScreen.hs library:</font>
+<u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI
+  <font color=Cyan>(</font> highlightOn
+  <font color=Cyan>,</font> highlightOff
+  <font color=Cyan>,</font> highlight
+  <font color=Cyan>,</font> cleareol<font color=Cyan>,</font> clearbol<font color=Cyan>,</font> clearline<font color=Cyan>,</font> clearDown<font color=Cyan>,</font> clearUp<font color=Cyan>,</font> cls
+  <font color=Cyan>,</font> goto
+  <font color=Cyan>,</font> cursorUp<font color=Cyan>,</font> cursorDown<font color=Cyan>,</font> cursorLeft<font color=Cyan>,</font> cursorRight
+  <font color=Cyan>,</font> savePosition<font color=Cyan>,</font> restorePosition
+  <font color=Cyan>,</font> Highlight<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>,</font> Colour<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>,</font> colourCycle
+  <font color=Cyan>,</font> enableScrollRegion<font color=Cyan>,</font> scrollUp<font color=Cyan>,</font> scrollDown
+  <font color=Cyan>,</font> lineWrap
+  <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight
+
+<u><font color=Green>import</font></u> List <font color=Cyan>(</font>intersperse<font color=Cyan>,</font>isPrefixOf<font color=Cyan>)</font>
+<u><font color=Green>import</font></u> Char <font color=Cyan>(</font>isDigit<font color=Cyan>)</font>
+
+
+<font color=Blue>-- Basic screen control codes:</font>
+
+<a name="Pos"></a><u><font color=Green>type</font></u> Pos           <font color=Red>=</font> <font color=Cyan>(</font>Int<font color=Cyan>,</font>Int<font color=Cyan>)</font>
+
+at        <font color=Red>::</font> Pos <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> String
+goto      <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String
+home      <font color=Red>::</font> String
+cls       <font color=Red>::</font> String
+
+<a name="at"></a>at <font color=Cyan>(</font>x<font color=Cyan>,</font>y<font color=Cyan>)</font> s  <font color=Red>=</font> goto x y <font color=Cyan>++</font> s
+<a name="goto"></a>goto x y    <font color=Red>=</font> <font color=Magenta>'\ESC'</font><b><font color=Red>:</font></b><font color=Magenta>'['</font><b><font color=Red>:</font></b><font color=Cyan>(</font>show y <font color=Cyan>++</font><font color=Cyan>(</font><font color=Magenta>';'</font><b><font color=Red>:</font></b>show x <font color=Cyan>++</font> <font color=Magenta>"H"</font><font color=Cyan>)</font><font color=Cyan>)</font>
+<a name="home"></a>home        <font color=Red>=</font> goto <font color=Magenta>1</font> <font color=Magenta>1</font>
+
+<a name="cursorUp"></a>cursorUp    <font color=Red>=</font> <font color=Magenta>"\ESC[A"</font>
+<a name="cursorDown"></a>cursorDown  <font color=Red>=</font> <font color=Magenta>"\ESC[B"</font>
+<a name="cursorRight"></a>cursorRight <font color=Red>=</font> <font color=Magenta>"\ESC[C"</font>
+<a name="cursorLeft"></a>cursorLeft  <font color=Red>=</font> <font color=Magenta>"\ESC[D"</font>
+
+<a name="cleareol"></a>cleareol    <font color=Red>=</font> <font color=Magenta>"\ESC[K"</font>
+<a name="clearbol"></a>clearbol    <font color=Red>=</font> <font color=Magenta>"\ESC[1K"</font>
+<a name="clearline"></a>clearline   <font color=Red>=</font> <font color=Magenta>"\ESC[2K"</font>
+<a name="clearDown"></a>clearDown   <font color=Red>=</font> <font color=Magenta>"\ESC[J"</font>
+<a name="clearUp"></a>clearUp     <font color=Red>=</font> <font color=Magenta>"\ESC[1J"</font>
+<font color=Blue>-- Choose whichever of the following lines is suitable for your system:</font>
+<a name="cls"></a>cls         <font color=Red>=</font> <font color=Magenta>"\ESC[2J"</font>     <font color=Blue>-- for PC with ANSI.SYS</font>
+<font color=Blue>--cls         = "\^L"         -- for Sun window</font>
+
+<a name="savePosition"></a>savePosition    <font color=Red>=</font> <font color=Magenta>"\ESC7"</font>
+<a name="restorePosition"></a>restorePosition <font color=Red>=</font> <font color=Magenta>"\ESC8"</font>
+
+
+<font color=Blue>-- data Colour    -- imported from ColourHighlight</font>
+<font color=Blue>-- data Highlight -- imported from ColourHighlight</font>
+
+<u><font color=Green>instance</font></u> Enum Highlight <u><font color=Green>where</font></u>
+  fromEnum Normal       <font color=Red>=</font> <font color=Magenta>0</font>
+  fromEnum Bold         <font color=Red>=</font> <font color=Magenta>1</font>
+  fromEnum Dim          <font color=Red>=</font> <font color=Magenta>2</font>
+  fromEnum Underscore   <font color=Red>=</font> <font color=Magenta>4</font>
+  fromEnum Blink        <font color=Red>=</font> <font color=Magenta>5</font>
+  fromEnum ReverseVideo <font color=Red>=</font> <font color=Magenta>7</font>
+  fromEnum Concealed    <font color=Red>=</font> <font color=Magenta>8</font>
+  fromEnum <font color=Cyan>(</font>Foreground c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>30</font> <font color=Cyan>+</font> fromEnum c
+  fromEnum <font color=Cyan>(</font>Background c<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>40</font> <font color=Cyan>+</font> fromEnum c
+
+highlight <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="highlight"></a>highlight attrs s <font color=Red>=</font> highlightOn attrs <font color=Cyan>++</font> s <font color=Cyan>++</font> highlightOff
+
+<a name="highlightOn"></a>highlightOn <font color=Red>[</font><font color=Red>]</font>     <font color=Red>=</font> highlightOn <font color=Red>[</font>Normal<font color=Red>]</font>
+highlightOn attrs  <font color=Red>=</font> <font color=Magenta>"\ESC["</font>
+                     <font color=Cyan>++</font> concat <font color=Cyan>(</font>intersperse <font color=Magenta>";"</font> <font color=Cyan>(</font>map <font color=Cyan>(</font>show<font color=Cyan>.</font>fromEnum<font color=Cyan>)</font> attrs<font color=Cyan>)</font><font color=Cyan>)</font>
+                     <font color=Cyan>++</font><font color=Magenta>"m"</font>
+<a name="highlightOff"></a>highlightOff <font color=Red>=</font> <font color=Magenta>"\ESC[0m"</font>
+
+
+<font color=Blue>-- An infinite supply of colours.</font>
+colourCycle <font color=Red>::</font> <font color=Red>[</font>Colour<font color=Red>]</font>
+<a name="colourCycle"></a>colourCycle <font color=Red>=</font> cycle <font color=Red>[</font>Red<font color=Cyan>,</font>Blue<font color=Cyan>,</font>Magenta<font color=Cyan>,</font>Green<font color=Cyan>,</font>Cyan<font color=Red>]</font>
+
+
+<font color=Blue>-- Scrolling</font>
+enableScrollRegion <font color=Red>::</font> Int <font color=Red>-&gt;</font> Int <font color=Red>-&gt;</font> String
+<a name="enableScrollRegion"></a>enableScrollRegion start end <font color=Red>=</font> <font color=Magenta>"\ESC["</font><font color=Cyan>++</font>show start<font color=Cyan>++</font><font color=Magenta>';'</font><b><font color=Red>:</font></b>show end<font color=Cyan>++</font><font color=Magenta>"r"</font>
+
+<a name="scrollDown"></a>scrollDown  <font color=Red>=</font> <font color=Magenta>"\ESCD"</font>
+<a name="scrollUp"></a>scrollUp    <font color=Red>=</font> <font color=Magenta>"\ESCM"</font>
+
+<font color=Blue>-- Line-wrapping mode</font>
+<a name="lineWrap"></a>lineWrap True  <font color=Red>=</font> <font color=Magenta>"\ESC[7h"</font>
+lineWrap False <font color=Red>=</font> <font color=Magenta>"\ESC[7l"</font>
+
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/Anchors.html b/docs/hscolour/Language/Haskell/HsColour/Anchors.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/Anchors.html
@@ -0,0 +1,131 @@
+<pre><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
+  <font color=Cyan>(</font> insertAnchors
+  <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<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>import</font></u> List
+
+<font color=Blue>-- This is an attempt to find the first defining occurrence of an</font>
+<font color=Blue>-- identifier (function, datatype, class) in a Haskell source file.</font>
+<font color=Blue>-- Rather than parse the module properly, we try to get by with just</font>
+<font color=Blue>-- a finite state automaton.  Keeping a record of identifiers we</font>
+<font color=Blue>-- have already seen, we look at the beginning of every line to see</font>
+<font color=Blue>-- if it starts with the right tokens to introduce a defn.  If so,</font>
+<font color=Blue>-- we look a little bit further until we can be certain.  Then plonk</font>
+<font color=Blue>-- (or not) an anchor at the beginning of the line.</font>
+
+<a name="Anchor"></a><u><font color=Green>type</font></u> Anchor <font color=Red>=</font> String
+
+<font color=Blue>-- | 'insertAnchors' places an anchor marker in the token stream before the</font>
+<font color=Blue>--   first defining occurrence of any identifier.  Here, /before/ means</font>
+<font color=Blue>--   immediately preceding its type signature, or preceding a (haddock)</font>
+<font color=Blue>--   comment that comes immediately before the type signature, or failing</font>
+<font color=Blue>--   either of those, before the first equation.</font>
+insertAnchors <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> <font color=Red>[</font>Either Anchor <font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>
+<a name="insertAnchors"></a>insertAnchors <font color=Red>=</font> anchor emptyST
+
+<font color=Blue>-- looks at first token in the left-most position of each line</font>
+<font color=Blue>-- precondition: have just seen a newline token.</font>
+<a name="anchor"></a>anchor st s <font color=Red>=</font> <u><font color=Green>case</font></u> identifier st s <u><font color=Green>of</font></u>
+                Nothing <font color=Red>-&gt;</font> emit st s
+                Just v  <font color=Red>-&gt;</font> Left v<b><font color=Red>:</font></b> emit <font color=Cyan>(</font>insertST v st<font color=Cyan>)</font> s
+
+<font color=Blue>-- emit passes stuff through until the next newline has been encountered,</font>
+<font color=Blue>-- then jumps back into the anchor function</font>
+<font color=Blue>-- pre-condition: newlines are explicitly single tokens</font>
+<a name="emit"></a>emit st <font color=Cyan>(</font>t<font color=Red>@</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Right t<b><font color=Red>:</font></b> anchor st stream
+emit st <font color=Cyan>(</font>t<b><font color=Red>:</font></b>stream<font color=Cyan>)</font>              <font color=Red>=</font> Right t<b><font color=Red>:</font></b> emit st stream
+emit <u><font color=Green>_</font></u>  <font color=Red>[</font><font color=Red>]</font>                      <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+
+<font color=Blue>-- Given that we are at the beginning of a line, determine whether there</font>
+<font color=Blue>-- is an identifier defined here, and if so, return it.</font>
+<font color=Blue>-- precondition: have just seen a newline token.</font>
+<a name="identifier"></a>identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Varid<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font>
+    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u>
+        <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>
+        notVarop  <font color=Blue>--  | typesig stream  -&gt; Nothing    -- not a defn</font>
+                      <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing    <font color=Blue>-- already defined</font>
+                      <font color=Red>|</font> otherwise       <font color=Red>-&gt;</font> Just v
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font>
+    <u><font color=Green>case</font></u> stream <u><font color=Green>of</font></u>
+      <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>
+                  <font color=Blue>--  | typesig stream  -&gt; Nothing</font>
+	              <font color=Red>|</font> v <font color=Cyan>`inST`</font> st     <font color=Red>-&gt;</font> Nothing
+	              <font color=Red>|</font> otherwise	<font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>
+      notVarop <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> skip <font color=Cyan>(</font>munchParens stream<font color=Cyan>)</font> <u><font color=Green>of</font></u>
+          <font color=Cyan>(</font><font color=Cyan>(</font>Varop<font color=Cyan>,</font>v<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>|</font> not <font color=Cyan>(</font>v<font color=Cyan>`inST`</font>st<font color=Cyan>)</font> <font color=Red>-&gt;</font> Just <font color=Cyan>(</font>fix v<font color=Cyan>)</font>
+          <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> Nothing
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> Nothing <font color=Blue>-- not yet implemented</font>
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"type"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> getConid stream
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyword<font color=Cyan>,</font><font color=Magenta>"class"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>   <font color=Red>=</font> getConid stream
+identifier st t<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Space<font color=Cyan>,</font><font color=Magenta>"\n"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> identifier st stream
+identifier st stream <font color=Red>=</font> Nothing
+
+<font color=Blue>-- Is this really a type signature?  (no longer used)</font>
+typesig <font color=Red>::</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font> <font color=Red>-&gt;</font> Bool
+<a name="typesig"></a>typesig <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"::"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>   <font color=Red>=</font> True
+typesig <font color=Cyan>(</font><font color=Cyan>(</font>Varid<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> typesig stream
+typesig <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Varop<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> typesig stream
+typesig <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>","</font><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> typesig stream
+typesig <font color=Cyan>(</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>    <font color=Red>=</font> typesig stream
+typesig <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>  <font color=Red>=</font> typesig stream
+typesig <u><font color=Green>_</font></u>                     <font color=Red>=</font> False
+
+<font color=Blue>-- throw away everything from opening paren to matching close</font>
+<a name="munchParens"></a>munchParens <font color=Red>=</font>  munch <font color=Cyan>(</font><font color=Magenta>0</font><font color=Red>::</font>Int<font color=Cyan>)</font>	<font color=Blue>-- already seen open paren</font>
+  <u><font color=Green>where</font></u> munch <font color=Magenta>0</font> <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> rest
+        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>")"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> rest
+        munch n <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font> munch <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> rest
+        munch n <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>rest<font color=Cyan>)</font>            <font color=Red>=</font> munch n rest
+        munch <u><font color=Green>_</font></u> <font color=Red>[</font><font color=Red>]</font>                  <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>	<font color=Blue>-- source is ill-formed</font>
+
+<font color=Blue>-- ensure anchor name is correct for a Varop</font>
+<a name="fix"></a>fix <font color=Cyan>(</font><font color=Magenta>'`'</font><b><font color=Red>:</font></b>v<font color=Cyan>)</font> <font color=Red>=</font> init v
+fix v       <font color=Red>=</font> v
+
+<font color=Blue>-- look past whitespace and comments to next "real" token</font>
+<a name="skip"></a>skip <font color=Cyan>(</font><font color=Cyan>(</font>Space<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font>   <font color=Red>=</font> skip stream
+skip <font color=Cyan>(</font><font color=Cyan>(</font>Comment<font color=Cyan>,</font><u><font color=Green>_</font></u><font color=Cyan>)</font><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> skip stream
+skip stream               <font color=Red>=</font> stream
+
+<font color=Blue>-- skip possible context up to and including "=&gt;", returning next Conid token</font>
+<font color=Blue>-- (this function is highly partial - relies on source being parse-correct)</font>
+<a name="getConid"></a>getConid stream <font color=Red>=</font>
+    <u><font color=Green>case</font></u> skip stream <u><font color=Green>of</font></u>
+        <font color=Cyan>(</font><font color=Cyan>(</font>Conid<font color=Cyan>,</font>c<font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> context rest <u><font color=Green>of</font></u>
+                              <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"="</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>     <font color=Red>-&gt;</font> Just c
+                              <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>more<font color=Cyan>)</font> <font color=Red>-&gt;</font>
+                                  <u><font color=Green>case</font></u> skip more <u><font color=Green>of</font></u>
+                                      <font color=Cyan>(</font><font color=Cyan>(</font>Conid<font color=Cyan>,</font>c'<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>-&gt;</font> Just c'
+                                      v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"Conid "</font><font color=Cyan>++</font>c<font color=Cyan>++</font><font color=Magenta>" =&gt;"</font><font color=Cyan>)</font>
+                              v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"Conid "</font><font color=Cyan>++</font>c<font color=Cyan>++</font><font color=Magenta>" no = or =&gt;"</font><font color=Cyan>)</font>
+        <font color=Cyan>(</font><font color=Cyan>(</font>Layout<font color=Cyan>,</font><font color=Magenta>"("</font><font color=Cyan>)</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <u><font color=Green>case</font></u> context rest <u><font color=Green>of</font></u>
+                                   <font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>)</font><b><font color=Red>:</font></b>more<font color=Cyan>)</font> <font color=Red>-&gt;</font>
+                                       <u><font color=Green>case</font></u> skip more <u><font color=Green>of</font></u>
+                                           <font color=Cyan>(</font><font color=Cyan>(</font>Conid<font color=Cyan>,</font>c'<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>-&gt;</font> Just c'
+                                           v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"(...) =&gt;"</font><font color=Cyan>)</font>
+                                   v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"(...) no =&gt;"</font><font color=Cyan>)</font>
+        v <font color=Red>-&gt;</font> debug v <font color=Cyan>(</font><font color=Magenta>"no Conid or (...)"</font><font color=Cyan>)</font>
+    <u><font color=Green>where</font></u> debug <font color=Cyan>(</font>s<b><font color=Red>:</font></b>t<font color=Cyan>)</font> c <font color=Red>=</font> Nothing
+       <font color=Blue>-- debug (s:t) c = error ("HsColour: getConid failed: "++show s</font>
+       <font color=Blue>--                       ++"\n  in the context of: "++c)</font>
+
+<font color=Blue>-- jump past possible class context</font>
+<a name="context"></a>context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"="</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream
+context stream<font color=Red>@</font><font color=Cyan>(</font><font color=Cyan>(</font>Keyglyph<font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> stream
+context <font color=Cyan>(</font><u><font color=Green>_</font></u><b><font color=Red>:</font></b>stream<font color=Cyan>)</font> <font color=Red>=</font> context stream
+
+<font color=Blue>-- simple implementation of a string lookup table.</font>
+<font color=Blue>-- replace this with something more sophisticated if needed.</font>
+<a name="ST"></a><u><font color=Green>type</font></u> ST <font color=Red>=</font> <font color=Red>[</font>String<font color=Red>]</font>
+
+emptyST <font color=Red>::</font> ST
+<a name="emptyST"></a>emptyST <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+
+insertST <font color=Red>::</font> String <font color=Red>-&gt;</font> ST <font color=Red>-&gt;</font> ST
+<a name="insertST"></a>insertST k st <font color=Red>=</font> insert k st
+
+inST <font color=Red>::</font> String <font color=Red>-&gt;</font> ST <font color=Red>-&gt;</font> Bool
+<a name="inST"></a>inST k st <font color=Red>=</font> k <font color=Cyan>`elem`</font> st
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/CSS.html b/docs/hscolour/Language/Haskell/HsColour/CSS.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/CSS.html
@@ -0,0 +1,66 @@
+<pre><font color=Blue>-- | Formats Haskell source code as HTML with CSS.</font>
+<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> hscolourFragment<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
+<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
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML <font color=Cyan>(</font>renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> escape<font color=Cyan>)</font>
+
+<font color=Blue>-- | Formats Haskell source code as a complete HTML document with CSS.</font>
+hscolour <font color=Red>::</font> Bool   <font color=Blue>-- ^ Whether to include anchors</font>
+         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
+         <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML document containing the coloured </font>
+                   <font color=Blue>--   Haskell source code.</font>
+<a name="hscolour"></a>hscolour anchor <font color=Red>=</font> top'n'tail <font color=Cyan>.</font> hscolourFragment anchor
+
+<font color=Blue>-- | Formats Haskell source code as an HTML fragment with CSS.</font>
+<font color=Blue>--   No stylesheet link is included in the output.</font>
+hscolourFragment <font color=Red>::</font> Bool   <font color=Blue>-- ^ Whether to include anchors</font>
+                 <font color=Red>-&gt;</font> String <font color=Blue>-- ^ Haskell source code.</font>
+                 <font color=Red>-&gt;</font> String <font color=Blue>-- ^ An HTML fragment containing the coloured </font>
+                           <font color=Blue>--   Haskell source code.</font>
+<a name="hscolourFragment"></a>hscolourFragment anchor <font color=Red>=</font> 
+    pre <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor 
+           <u><font color=Green>then</font></u> concatMap <font color=Cyan>(</font>renderAnchors renderToken<font color=Cyan>)</font> <font color=Cyan>.</font> insertAnchors
+           <u><font color=Green>else</font></u> concatMap renderToken<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise
+
+top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="top'n'tail"></a>top'n'tail  <font color=Red>=</font> <font color=Cyan>(</font>cssPrefix<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>
+
+pre <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="pre"></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>
+
+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="renderToken"></a>renderToken <font color=Cyan>(</font>Space<font color=Cyan>,</font>text<font color=Cyan>)</font> <font color=Red>=</font> text
+renderToken <font color=Cyan>(</font>cls<font color=Cyan>,</font>text<font color=Cyan>)</font>   <font color=Red>=</font> <font color=Magenta>"&lt;span class='"</font> <font color=Cyan>++</font> cssClass cls <font color=Cyan>++</font> <font color=Magenta>"'&gt;"</font> <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>
+                           <font color=Magenta>"&lt;/span&gt;"</font>
+
+<a name="cssClass"></a>cssClass Keyword  <font color=Red>=</font> <font color=Magenta>"keyword"</font>
+cssClass Keyglyph <font color=Red>=</font> <font color=Magenta>"keyglyph"</font>
+cssClass Layout   <font color=Red>=</font> <font color=Magenta>"layout"</font>
+cssClass Comment  <font color=Red>=</font> <font color=Magenta>"comment"</font>
+cssClass Conid    <font color=Red>=</font> <font color=Magenta>"conid"</font>
+cssClass Varid    <font color=Red>=</font> <font color=Magenta>"varid"</font>
+cssClass Conop    <font color=Red>=</font> <font color=Magenta>"conop"</font>
+cssClass Varop    <font color=Red>=</font> <font color=Magenta>"varop"</font>
+cssClass String   <font color=Red>=</font> <font color=Magenta>"str"</font>
+cssClass Char     <font color=Red>=</font> <font color=Magenta>"chr"</font>
+cssClass Number   <font color=Red>=</font> <font color=Magenta>"num"</font>
+cssClass Error    <font color=Red>=</font> <font color=Magenta>"sel"</font>
+
+<a name="cssPrefix"></a>cssPrefix <font color=Red>=</font> unlines
+    <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>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;html&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;head&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ --&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;title&gt;Haskell Code by HsColour&lt;/title&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;link type='text/css' rel='stylesheet' href='hscolour.css' /&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;/head&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;body&gt;"</font>
+    <font color=Red>]</font>
+    
+<a name="cssSuffix"></a>cssSuffix <font color=Red>=</font> unlines
+    <font color=Red>[</font><font color=Magenta>"&lt;/body&gt;"</font>
+    <font color=Cyan>,</font><font color=Magenta>"&lt;/html&gt;"</font>
+    <font color=Red>]</font>
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/Classify.html b/docs/hscolour/Language/Haskell/HsColour/Classify.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/Classify.html
@@ -0,0 +1,100 @@
+<pre><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify
+  <font color=Cyan>(</font> TokenType<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>,</font> tokenise
+  <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Char
+<u><font color=Green>import</font></u> List
+
+<font color=Blue>-- Lex Haskell source code into an annotated token stream, without</font>
+<font color=Blue>-- discarding any characters or layout.</font>
+tokenise <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font><font color=Cyan>(</font>TokenType<font color=Cyan>,</font>String<font color=Cyan>)</font><font color=Red>]</font>
+<a name="tokenise"></a>tokenise <font color=Red>=</font> map <font color=Cyan>(</font><font color=Red>\</font>s<font color=Red>-&gt;</font> <font color=Cyan>(</font>classify s<font color=Cyan>,</font>s<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>.</font> glue <font color=Cyan>.</font> chunk
+
+<font color=Blue>-- Basic Haskell lexing, except we keep whitespace.</font>
+chunk <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Red>[</font>String<font color=Red>]</font>
+<a name="chunk"></a>chunk <font color=Red>[</font><font color=Red>]</font>    <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+chunk <font color=Cyan>(</font><font color=Magenta>'\r'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> chunk s <font color=Blue>-- get rid of DOS newline stuff</font>
+chunk <font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <font color=Magenta>"\n"</font><b><font color=Red>:</font></b> chunk s
+chunk <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>|</font> isLinearSpace c
+            <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>ss<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk rest <u><font color=Green>where</font></u> <font color=Cyan>(</font>ss<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> span isLinearSpace s
+chunk <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>s<font color=Cyan>)</font> <font color=Red>=</font> <u><font color=Green>let</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Magenta>0</font> s
+                    <u><font color=Green>in</font></u> <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>com<font color=Cyan>)</font> <b><font color=Red>:</font></b> chunk s'
+chunk s <font color=Red>=</font> <u><font color=Green>case</font></u> Prelude<font color=Cyan>.</font>lex s <u><font color=Green>of</font></u>
+              <font color=Red>[</font><font color=Red>]</font>             <font color=Red>-&gt;</font> <font color=Red>[</font>head s<font color=Red>]</font><b><font color=Red>:</font></b> chunk <font color=Cyan>(</font>tail s<font color=Cyan>)</font> <font color=Blue>-- e.g. inside comment</font>
+              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Red>@</font><font color=Cyan>(</font><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=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>
+                  <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> tok <font color=Red>-&gt;</font> <font color=Cyan>(</font>tok<font color=Cyan>++</font>com<font color=Cyan>)</font><b><font color=Red>:</font></b> chunk s'
+                                       <u><font color=Green>where</font></u> <font color=Cyan>(</font>com<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment rest
+              <font color=Cyan>(</font><font color=Cyan>(</font>tok<font color=Cyan>,</font>rest<font color=Cyan>)</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>-&gt;</font> tok<b><font color=Red>:</font></b> chunk rest
+
+<a name="isLinearSpace"></a>isLinearSpace c <font color=Red>=</font> c <font color=Cyan>`elem`</font> <font color=Magenta>" \t"</font> <font color=Blue>-- " \t\xa0"</font>
+
+<font color=Blue>-- Glue sequences of tokens into more useful blobs</font>
+<font color=Blue>--glue (q:".":n:rest) | Char.isUpper (head q)	-- qualified names</font>
+<font color=Blue>--                    = glue ((q++"."++n): rest)</font>
+<a name="glue"></a>glue <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>=</font>				<font color=Blue>-- `varid` -&gt; varop</font>
+  <u><font color=Green>case</font></u> glue rest <u><font color=Green>of</font></u>
+    <font color=Cyan>(</font>qn<b><font color=Red>:</font></b><font color=Magenta>"`"</font><b><font color=Red>:</font></b>rest<font color=Cyan>)</font> <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"`"</font><font color=Cyan>++</font>qn<font color=Cyan>++</font><font color=Magenta>"`"</font><font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest
+    <u><font color=Green>_</font></u>             <font color=Red>-&gt;</font> <font color=Cyan>(</font><font color=Magenta>"`"</font><b><font color=Red>:</font></b> rest<font color=Cyan>)</font>
+glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s <font color=Cyan>&amp;&amp;</font> length s <font color=Cyan>&gt;=</font><font color=Magenta>2</font>	<font color=Blue>-- eol comment</font>
+                  <font color=Red>=</font> <font color=Cyan>(</font>s<font color=Cyan>++</font>concat c<font color=Cyan>)</font><b><font color=Red>:</font></b> glue rest
+                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>c<font color=Cyan>,</font>rest<font color=Cyan>)</font> <font color=Red>=</font> break <font color=Cyan>(</font><font color=Magenta>'\n'</font><font color=Cyan>`elem`</font><font color=Cyan>)</font> ss
+<font color=Blue>--glue ("{":"-":ss)  = ("{-"++c): glue rest	-- nested comment</font>
+<font color=Blue>--                  where (c,rest) = nestcomment 0 ss</font>
+glue <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>=</font> s<b><font color=Red>:</font></b> glue ss
+glue <font color=Red>[</font><font color=Red>]</font>           <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+
+<font color=Blue>-- Deal with comments.</font>
+nestcomment <font color=Red>::</font> Int <font color=Red>-&gt;</font> String <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font>
+<a name="nestcomment"></a>nestcomment n <font color=Cyan>(</font><font color=Magenta>'{'</font><b><font color=Red>:</font></b><font color=Magenta>'-'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"{-"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font>
+                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Cyan>+</font><font color=Magenta>1</font><font color=Cyan>)</font> ss
+nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>&gt;</font><font color=Magenta>0</font>  <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>++</font>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font>
+                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment <font color=Cyan>(</font>n<font color=Blue>-</font><font color=Magenta>1</font><font color=Cyan>)</font> ss
+nestcomment n <font color=Cyan>(</font><font color=Magenta>'-'</font><b><font color=Red>:</font></b><font color=Magenta>'}'</font><b><font color=Red>:</font></b>ss<font color=Cyan>)</font> <font color=Red>|</font> n<font color=Cyan>==</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Magenta>"-}"</font><font color=Cyan>,</font>ss<font color=Cyan>)</font>
+nestcomment n <font color=Cyan>(</font>s<b><font color=Red>:</font></b>ss<font color=Cyan>)</font>       <font color=Red>|</font> n<font color=Cyan>&gt;=</font><font color=Magenta>0</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Cyan>(</font>s<b><font color=Red>:</font></b>cs<font color=Cyan>)</font><font color=Cyan>,</font>rm<font color=Cyan>)</font>
+                                  <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>rm<font color=Cyan>)</font> <font color=Red>=</font> nestcomment n ss
+nestcomment n <font color=Red>[</font><font color=Red>]</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Red>[</font><font color=Red>]</font><font color=Cyan>,</font><font color=Red>[</font><font color=Red>]</font><font color=Cyan>)</font>
+
+eolcomment <font color=Red>::</font> String <font color=Red>-&gt;</font> <font color=Cyan>(</font>String<font color=Cyan>,</font>String<font color=Cyan>)</font>
+<a name="eolcomment"></a>eolcomment s<font color=Red>@</font><font color=Cyan>(</font><font color=Magenta>'\n'</font><b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font> <font color=Red>=</font> <font color=Cyan>(</font><font color=Red>[</font><font color=Red>]</font><font color=Cyan>,</font> s<font color=Cyan>)</font>
+eolcomment <font color=Cyan>(</font>c<b><font color=Red>:</font></b>s<font color=Cyan>)</font>      <font color=Red>=</font> <font color=Cyan>(</font>c<b><font color=Red>:</font></b>cs<font color=Cyan>,</font> s'<font color=Cyan>)</font> <u><font color=Green>where</font></u> <font color=Cyan>(</font>cs<font color=Cyan>,</font>s'<font color=Cyan>)</font> <font color=Red>=</font> eolcomment s
+eolcomment <font color=Red>[</font><font color=Red>]</font>         <font color=Red>=</font> <font color=Cyan>(</font><font color=Red>[</font><font color=Red>]</font><font color=Cyan>,</font><font color=Red>[</font><font color=Red>]</font><font color=Cyan>)</font>
+
+<font color=Blue>-- Classify tokens</font>
+<a name="TokenType"></a><u><font color=Green>data</font></u> TokenType <font color=Red>=</font>
+  Space <font color=Red>|</font> Keyword <font color=Red>|</font> Keyglyph <font color=Red>|</font> Layout <font color=Red>|</font> Comment <font color=Red>|</font> Conid <font color=Red>|</font> Varid <font color=Red>|</font>
+  Conop <font color=Red>|</font> Varop   <font color=Red>|</font> String   <font color=Red>|</font> Char   <font color=Red>|</font> Number  <font color=Red>|</font> Error
+  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>)</font>
+
+classify <font color=Red>::</font> String <font color=Red>-&gt;</font> TokenType
+<a name="classify"></a>classify s<font color=Red>@</font><font color=Cyan>(</font>h<b><font color=Red>:</font></b><u><font color=Green>_</font></u><font color=Cyan>)</font>
+    <font color=Red>|</font> isSpace h              <font color=Red>=</font> Space
+    <font color=Red>|</font> all <font color=Cyan>(</font><font color=Cyan>==</font><font color=Magenta>'-'</font><font color=Cyan>)</font> s          <font color=Red>=</font> Comment
+    <font color=Red>|</font> <font color=Magenta>"--"</font> <font color=Cyan>`isPrefixOf`</font> s
+      <font color=Cyan>&amp;&amp;</font> any isSpace s       <font color=Red>=</font> Comment		<font color=Blue>-- not fully correct</font>
+    <font color=Red>|</font> <font color=Magenta>"{-"</font> <font color=Cyan>`isPrefixOf`</font> s    <font color=Red>=</font> Comment
+    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keywords      <font color=Red>=</font> Keyword
+    <font color=Red>|</font> s <font color=Cyan>`elem`</font> keyglyphs     <font color=Red>=</font> Keyglyph
+    <font color=Red>|</font> s <font color=Cyan>`elem`</font> layoutchars   <font color=Red>=</font> Layout
+    <font color=Red>|</font> isUpper h              <font color=Red>=</font> Conid
+    <font color=Red>|</font> isLower h              <font color=Red>=</font> Varid
+    <font color=Red>|</font> h <font color=Cyan>`elem`</font> symbols       <font color=Red>=</font> Varop
+    <font color=Red>|</font> h<font color=Cyan>==</font><font color=Magenta>':'</font>                 <font color=Red>=</font> Conop
+    <font color=Red>|</font> h<font color=Cyan>==</font><font color=Magenta>'`'</font>                 <font color=Red>=</font> Varop
+    <font color=Red>|</font> h<font color=Cyan>==</font><font color=Magenta>'"'</font>                 <font color=Red>=</font> String
+    <font color=Red>|</font> h<font color=Cyan>==</font><font color=Magenta>'\''</font>                <font color=Red>=</font> Char
+    <font color=Red>|</font> isDigit h              <font color=Red>=</font> Number
+    <font color=Red>|</font> otherwise              <font color=Red>=</font> Error
+
+<font color=Blue>-- Haskell keywords</font>
+<a name="keywords"></a>keywords <font color=Red>=</font>
+  <font color=Red>[</font><font color=Magenta>"case"</font><font color=Cyan>,</font><font color=Magenta>"class"</font><font color=Cyan>,</font><font color=Magenta>"data"</font><font color=Cyan>,</font><font color=Magenta>"default"</font><font color=Cyan>,</font><font color=Magenta>"deriving"</font><font color=Cyan>,</font><font color=Magenta>"do"</font><font color=Cyan>,</font><font color=Magenta>"else"</font>
+  <font color=Cyan>,</font><font color=Magenta>"if"</font><font color=Cyan>,</font><font color=Magenta>"import"</font><font color=Cyan>,</font><font color=Magenta>"in"</font><font color=Cyan>,</font><font color=Magenta>"infix"</font><font color=Cyan>,</font><font color=Magenta>"infixl"</font><font color=Cyan>,</font><font color=Magenta>"infixr"</font><font color=Cyan>,</font><font color=Magenta>"instance"</font><font color=Cyan>,</font><font color=Magenta>"let"</font><font color=Cyan>,</font><font color=Magenta>"module"</font>
+  <font color=Cyan>,</font><font color=Magenta>"newtype"</font><font color=Cyan>,</font><font color=Magenta>"of"</font><font color=Cyan>,</font><font color=Magenta>"then"</font><font color=Cyan>,</font><font color=Magenta>"type"</font><font color=Cyan>,</font><font color=Magenta>"where"</font><font color=Cyan>,</font><font color=Magenta>"_"</font><font color=Cyan>,</font><font color=Magenta>"foreign"</font><font color=Cyan>,</font><font color=Magenta>"ccall"</font><font color=Cyan>,</font><font color=Magenta>"as"</font><font color=Red>]</font>
+<a name="keyglyphs"></a>keyglyphs <font color=Red>=</font>
+  <font color=Red>[</font><font color=Magenta>".."</font><font color=Cyan>,</font><font color=Magenta>"::"</font><font color=Cyan>,</font><font color=Magenta>"="</font><font color=Cyan>,</font><font color=Magenta>"\\"</font><font color=Cyan>,</font><font color=Magenta>"|"</font><font color=Cyan>,</font><font color=Magenta>"&lt;-"</font><font color=Cyan>,</font><font color=Magenta>"-&gt;"</font><font color=Cyan>,</font><font color=Magenta>"@"</font><font color=Cyan>,</font><font color=Magenta>"~"</font><font color=Cyan>,</font><font color=Magenta>"=&gt;"</font><font color=Cyan>,</font><font color=Magenta>"["</font><font color=Cyan>,</font><font color=Magenta>"]"</font><font color=Red>]</font>
+<a name="layoutchars"></a>layoutchars <font color=Red>=</font>
+  map <font color=Cyan>(</font><b><font color=Red>:</font></b><font color=Red>[</font><font color=Red>]</font><font color=Cyan>)</font> <font color=Magenta>";{}(),"</font>
+<a name="symbols"></a>symbols <font color=Red>=</font>
+  <font color=Magenta>"!#$%&amp;*+./&lt;=&gt;?@\\^|-~"</font>
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html b/docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/ColourHighlight.html
@@ -0,0 +1,21 @@
+<pre><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight
+  <font color=Cyan>(</font> Colour<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>,</font> Highlight<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<a name="Colour"></a><u><font color=Green>data</font></u> Colour <font color=Red>=</font> Black <font color=Red>|</font> Red <font color=Red>|</font> Green <font color=Red>|</font> Yellow <font color=Red>|</font> Blue <font color=Red>|</font> Magenta <font color=Red>|</font> Cyan <font color=Red>|</font> White
+  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>,</font>Enum<font color=Cyan>)</font>
+
+<a name="Highlight"></a><u><font color=Green>data</font></u> Highlight <font color=Red>=</font>
+    Normal
+  <font color=Red>|</font> Bold
+  <font color=Red>|</font> Dim
+  <font color=Red>|</font> Underscore
+  <font color=Red>|</font> Blink
+  <font color=Red>|</font> ReverseVideo
+  <font color=Red>|</font> Concealed
+  <font color=Red>|</font> Foreground Colour
+  <font color=Red>|</font> Background Colour
+  <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>
+
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/Colourise.html b/docs/hscolour/Language/Haskell/HsColour/Colourise.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/Colourise.html
@@ -0,0 +1,65 @@
+<pre><u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
+  <font color=Cyan>(</font> <u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight
+  <font color=Cyan>,</font> ColourPrefs<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font>
+  <font color=Cyan>,</font> readColourPrefs
+  <font color=Cyan>,</font> colourise
+  <font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ColourHighlight
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Classify <font color=Cyan>(</font>TokenType<font color=Cyan>(</font><font color=Red>..</font><font color=Cyan>)</font><font color=Cyan>)</font>
+
+<u><font color=Green>import</font></u> System <font color=Cyan>(</font>getEnv<font color=Cyan>)</font>
+<u><font color=Green>import</font></u> Char
+<u><font color=Green>import</font></u> List
+
+<font color=Blue>-- | Colour preferences.</font>
+<a name="ColourPrefs"></a><u><font color=Green>data</font></u> ColourPrefs <font color=Red>=</font> ColourPrefs
+  <font color=Cyan>{</font> keyword<font color=Cyan>,</font> keyglyph<font color=Cyan>,</font> layout<font color=Cyan>,</font> comment
+  <font color=Cyan>,</font> conid<font color=Cyan>,</font> varid<font color=Cyan>,</font> conop<font color=Cyan>,</font> varop
+  <font color=Cyan>,</font> string<font color=Cyan>,</font> char<font color=Cyan>,</font> number
+  <font color=Cyan>,</font> selection<font color=Cyan>,</font> variantselection <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font>
+  <font color=Cyan>}</font> <u><font color=Green>deriving</font></u> <font color=Cyan>(</font>Eq<font color=Cyan>,</font>Show<font color=Cyan>,</font>Read<font color=Cyan>)</font>
+
+<a name="defaultColourPrefs"></a>defaultColourPrefs <font color=Red>=</font> ColourPrefs
+  <font color=Cyan>{</font> keyword  <font color=Red>=</font> <font color=Red>[</font>Foreground Green<font color=Cyan>,</font>Underscore<font color=Red>]</font>
+  <font color=Cyan>,</font> keyglyph <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Red>]</font>
+  <font color=Cyan>,</font> layout   <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>
+  <font color=Cyan>,</font> comment  <font color=Red>=</font> <font color=Red>[</font>Foreground Blue<font color=Red>]</font>
+  <font color=Cyan>,</font> conid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>
+  <font color=Cyan>,</font> varid    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>
+  <font color=Cyan>,</font> conop    <font color=Red>=</font> <font color=Red>[</font>Foreground Red<font color=Cyan>,</font>Bold<font color=Red>]</font>
+  <font color=Cyan>,</font> varop    <font color=Red>=</font> <font color=Red>[</font>Foreground Cyan<font color=Red>]</font>
+  <font color=Cyan>,</font> string   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>
+  <font color=Cyan>,</font> char     <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>
+  <font color=Cyan>,</font> number   <font color=Red>=</font> <font color=Red>[</font>Foreground Magenta<font color=Red>]</font>
+  <font color=Cyan>,</font> selection <font color=Red>=</font> <font color=Red>[</font>Bold<font color=Cyan>,</font> Foreground Magenta<font color=Red>]</font>
+  <font color=Cyan>,</font> variantselection <font color=Red>=</font> <font color=Red>[</font>Dim<font color=Cyan>,</font> Foreground Red<font color=Cyan>,</font> Underscore<font color=Red>]</font>
+  <font color=Cyan>}</font>
+
+readColourPrefs <font color=Red>::</font> IO ColourPrefs
+<a name="readColourPrefs"></a>readColourPrefs <font color=Red>=</font> catch
+  <font color=Cyan>(</font><u><font color=Green>do</font></u> val <font color=Red>&lt;-</font> readFile <font color=Magenta>".hscolour"</font>
+      return <font color=Cyan>(</font>read val<font color=Cyan>)</font><font color=Cyan>)</font>
+  <font color=Cyan>(</font><font color=Red>\</font>e<font color=Red>-&gt;</font> catch
+    <font color=Cyan>(</font><u><font color=Green>do</font></u> home <font color=Red>&lt;-</font> getEnv <font color=Magenta>"HOME"</font>
+        val <font color=Red>&lt;-</font> readFile <font color=Cyan>(</font>home<font color=Cyan>++</font><font color=Magenta>"/.hscolour"</font><font color=Cyan>)</font>
+        return <font color=Cyan>(</font>read val<font color=Cyan>)</font><font color=Cyan>)</font>
+    <font color=Cyan>(</font><font color=Red>\</font>e<font color=Red>-&gt;</font> return defaultColourPrefs<font color=Cyan>)</font><font color=Cyan>)</font>
+
+<font color=Blue>-- Convert classification to colour highlights.</font>
+colourise <font color=Red>::</font> ColourPrefs <font color=Red>-&gt;</font> TokenType <font color=Red>-&gt;</font> <font color=Red>[</font>Highlight<font color=Red>]</font>
+<a name="colourise"></a>colourise pref Space    <font color=Red>=</font> <font color=Red>[</font>Normal<font color=Red>]</font>
+colourise pref Comment  <font color=Red>=</font> comment pref
+colourise pref Keyword  <font color=Red>=</font> keyword pref
+colourise pref Keyglyph <font color=Red>=</font> keyglyph pref
+colourise pref Layout   <font color=Red>=</font> layout pref
+colourise pref Conid    <font color=Red>=</font> conid pref
+colourise pref Varid    <font color=Red>=</font> varid pref
+colourise pref Conop    <font color=Red>=</font> conop pref
+colourise pref Varop    <font color=Red>=</font> varop pref
+colourise pref String   <font color=Red>=</font> string pref
+colourise pref Char     <font color=Red>=</font> char pref
+colourise pref Number   <font color=Red>=</font> number pref
+colourise pref Error    <font color=Red>=</font> selection pref
+
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/HTML.html b/docs/hscolour/Language/Haskell/HsColour/HTML.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/HTML.html
@@ -0,0 +1,69 @@
+<pre><font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>
+<u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>HTML 
+    <font color=Cyan>(</font>hscolour<font color=Cyan>,</font> 
+     <font color=Blue>-- * Internals</font>
+     renderAnchors<font color=Cyan>,</font> renderComment<font color=Cyan>,</font> escape<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Anchors
+<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
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
+
+<u><font color=Green>import</font></u> Data<font color=Cyan>.</font>Char<font color=Cyan>(</font>isAlphaNum<font color=Cyan>)</font>
+
+
+<font color=Blue>-- | Formats Haskell source code using HTML with font tags.</font>
+hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>
+         <font color=Red>-&gt;</font> Bool        <font color=Blue>-- ^ Whether to include anchors</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
+<a name="hscolour"></a>hscolour pref anchor <font color=Red>=</font> 
+    top'n'tail <font color=Cyan>.</font> <font color=Cyan>(</font><u><font color=Green>if</font></u> anchor <u><font color=Green>then</font></u> concatMap <font color=Cyan>(</font>renderAnchors <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font> 
+                                   <font color=Cyan>.</font> insertAnchors
+                            <u><font color=Green>else</font></u> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font><font color=Cyan>)</font> <font color=Cyan>.</font> tokenise
+
+top'n'tail <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="top'n'tail"></a>top'n'tail <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>
+
+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="renderToken"></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>
+                         <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>
+
+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>
+                 <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="renderAnchors"></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>
+renderAnchors render <font color=Cyan>(</font>Right r<font color=Cyan>)</font> <font color=Red>=</font> render r
+
+<font color=Blue>-- if there are http://links/ in a comment, turn them into</font>
+<font color=Blue>-- hyperlinks</font>
+renderComment <font color=Red>::</font> String <font color=Red>-&gt;</font> String
+<a name="renderComment"></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>
+        renderLink a <font color=Cyan>++</font> renderComment b
+    <u><font color=Green>where</font></u>
+        <font color=Blue>-- see http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#characters</font>
+        isUrlChar x <font color=Red>=</font> isAlphaNum x <font color=Cyan>||</font> x <font color=Cyan>`elem`</font> <font color=Magenta>":/?#[]@!$&amp;'()*+,;=-._~%"</font>
+        <font color=Cyan>(</font>a<font color=Cyan>,</font>b<font color=Cyan>)</font> <font color=Red>=</font> span isUrlChar xs
+        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>
+        
+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
+renderComment <font color=Red>[</font><font color=Red>]</font> <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+
+<font color=Blue>-- Html stuff</font>
+<a name="fontify"></a>fontify <font color=Red>[</font><font color=Red>]</font> s     <font color=Red>=</font> s
+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="font"></a>font Normal         s <font color=Red>=</font> s
+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>
+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>
+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>
+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>
+font ReverseVideo   s <font color=Red>=</font> s
+font Concealed      s <font color=Red>=</font> s
+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>
+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="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
+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
+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
+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
+escape <font color=Red>[</font><font color=Red>]</font>       <font color=Red>=</font> <font color=Red>[</font><font color=Red>]</font>
+</pre>
diff --git a/docs/hscolour/Language/Haskell/HsColour/TTY.html b/docs/hscolour/Language/Haskell/HsColour/TTY.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/Language/Haskell/HsColour/TTY.html
@@ -0,0 +1,16 @@
+<pre><font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font>
+<u><font color=Green>module</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>TTY <font color=Cyan>(</font>hscolour<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+
+<u><font color=Green>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>ANSI <u><font color=Green>as</font></u> ANSI
+<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>import</font></u> Language<font color=Cyan>.</font>Haskell<font color=Cyan>.</font>HsColour<font color=Cyan>.</font>Colourise
+
+<font color=Blue>-- | Highlights Haskell code with ANSI terminal codes.</font>
+hscolour <font color=Red>::</font> ColourPrefs <font color=Blue>-- ^ Colour preferences.</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Haskell source code.</font>
+         <font color=Red>-&gt;</font> String      <font color=Blue>-- ^ Coloured Haskell source code.</font>
+<a name="hscolour"></a>hscolour pref <font color=Red>=</font> concatMap <font color=Cyan>(</font>renderToken pref<font color=Cyan>)</font> <font color=Cyan>.</font> tokenise
+
+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="renderToken"></a>renderToken pref <font color=Cyan>(</font>t<font color=Cyan>,</font>s<font color=Cyan>)</font> <font color=Red>=</font> ANSI<font color=Cyan>.</font>highlight <font color=Cyan>(</font>colourise pref t<font color=Cyan>)</font> s
+</pre>
diff --git a/docs/hscolour/doc-index-B.html b/docs/hscolour/doc-index-B.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-B.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (B)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Background</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABackground"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ABackground"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Black</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABlack"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ABlack"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Blink</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABlink"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ABlink"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Blue</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABlue"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ABlue"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Bold</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ABold"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ABold"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-C.html b/docs/hscolour/doc-index-C.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-C.html
@@ -0,0 +1,364 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (C)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>CSS</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#v%3ACSS"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Char</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AChar"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Colour</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AColour"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AColour"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
+>ColourPrefs</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Type/Class)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#t%3AColourPrefs"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#t%3AColourPrefs"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Data Constructor)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3AColourPrefs"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3AColourPrefs"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Comment</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AComment"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Concealed</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AConcealed"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AConcealed"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Conid</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AConid"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Conop</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AConop"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Cyan</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ACyan"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ACyan"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>char</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Achar"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Achar"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>clearDown</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AclearDown"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>clearUp</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AclearUp"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>clearbol</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Aclearbol"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cleareol</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Acleareol"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>clearline</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Aclearline"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cls</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Acls"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>colourCycle</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AcolourCycle"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>colourise</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Acolourise"
+>Language.Haskell.HsColour.Colourise</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>comment</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Acomment"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Acomment"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>conid</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Aconid"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Aconid"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>conop</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Aconop"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Aconop"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cursorDown</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AcursorDown"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cursorLeft</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AcursorLeft"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cursorRight</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AcursorRight"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>cursorUp</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AcursorUp"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-D.html b/docs/hscolour/doc-index-D.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-D.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (D)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Dim</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ADim"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ADim"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-E.html b/docs/hscolour/doc-index-E.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-E.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (E)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Error</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AError"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>enableScrollRegion</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AenableScrollRegion"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>escape</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-HTML.html#v%3Aescape"
+>Language.Haskell.HsColour.HTML</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-F.html b/docs/hscolour/doc-index-F.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-F.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (F)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Foreground</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AForeground"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AForeground"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-G.html b/docs/hscolour/doc-index-G.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-G.html
@@ -0,0 +1,152 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (G)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Green</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AGreen"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AGreen"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>goto</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Agoto"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-H.html b/docs/hscolour/doc-index-H.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-H.html
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (H)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>HTML</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#v%3AHTML"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Highlight</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#t%3AHighlight"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#t%3AHighlight"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>highlight</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3Ahighlight"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>highlightOff</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AhighlightOff"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>highlightOn</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AhighlightOn"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry" COLSPAN="2"
+>hscolour</TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>1 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#v%3Ahscolour"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>2 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-CSS.html#v%3Ahscolour"
+>Language.Haskell.HsColour.CSS</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>3 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-HTML.html#v%3Ahscolour"
+>Language.Haskell.HsColour.HTML</A
+></TD
+></TR
+><TR
+><TD CLASS="indexannot"
+>4 (Function)</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-TTY.html#v%3Ahscolour"
+>Language.Haskell.HsColour.TTY</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>hscolourFragment</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-CSS.html#v%3AhscolourFragment"
+>Language.Haskell.HsColour.CSS</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-I.html b/docs/hscolour/doc-index-I.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-I.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (I)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>insertAnchors</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Anchors.html#v%3AinsertAnchors"
+>Language.Haskell.HsColour.Anchors</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-K.html b/docs/hscolour/doc-index-K.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-K.html
@@ -0,0 +1,170 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (K)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Keyglyph</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AKeyglyph"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Keyword</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AKeyword"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>keyglyph</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Akeyglyph"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Akeyglyph"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>keyword</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Akeyword"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Akeyword"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-L.html b/docs/hscolour/doc-index-L.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-L.html
@@ -0,0 +1,168 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (L)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>LaTeX</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#v%3ALaTeX"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Layout</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3ALayout"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>layout</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Alayout"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Alayout"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>lineWrap</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AlineWrap"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-M.html b/docs/hscolour/doc-index-M.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-M.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (M)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Magenta</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AMagenta"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AMagenta"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-N.html b/docs/hscolour/doc-index-N.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-N.html
@@ -0,0 +1,162 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (N)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Normal</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ANormal"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ANormal"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Number</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3ANumber"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>number</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Anumber"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Anumber"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-O.html b/docs/hscolour/doc-index-O.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-O.html
@@ -0,0 +1,142 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (O)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Output</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#t%3AOutput"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-R.html b/docs/hscolour/doc-index-R.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-R.html
@@ -0,0 +1,186 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (R)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Red</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3ARed"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3ARed"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>ReverseVideo</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AReverseVideo"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AReverseVideo"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>readColourPrefs</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3AreadColourPrefs"
+>Language.Haskell.HsColour.Colourise</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>renderAnchors</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-HTML.html#v%3ArenderAnchors"
+>Language.Haskell.HsColour.HTML</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>renderComment</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-HTML.html#v%3ArenderComment"
+>Language.Haskell.HsColour.HTML</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>restorePosition</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3ArestorePosition"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-S.html b/docs/hscolour/doc-index-S.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-S.html
@@ -0,0 +1,194 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (S)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Space</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3ASpace"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>String</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AString"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>savePosition</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AsavePosition"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>scrollDown</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AscrollDown"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>scrollUp</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ANSI.html#v%3AscrollUp"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>selection</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Aselection"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Aselection"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>string</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Astring"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Astring"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-T.html b/docs/hscolour/doc-index-T.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-T.html
@@ -0,0 +1,158 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (T)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>TTY</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour.html#v%3ATTY"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>TokenType</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#t%3ATokenType"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>tokenise</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3Atokenise"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-U.html b/docs/hscolour/doc-index-U.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-U.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (U)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Underscore</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AUnderscore"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AUnderscore"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-V.html b/docs/hscolour/doc-index-V.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-V.html
@@ -0,0 +1,180 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (V)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Varid</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AVarid"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>Varop</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Classify.html#v%3AVarop"
+>Language.Haskell.HsColour.Classify</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>variantselection</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Avariantselection"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Avariantselection"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>varid</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Avarid"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Avarid"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+><TR
+><TD CLASS="indexentry"
+>varop</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-Colourise.html#v%3Avarop"
+>Language.Haskell.HsColour.Colourise</A
+>, <A HREF="Language-Haskell-HsColour.html#v%3Avarop"
+>Language.Haskell.HsColour</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-W.html b/docs/hscolour/doc-index-W.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-W.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (W)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>White</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AWhite"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AWhite"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index-Y.html b/docs/hscolour/doc-index-Y.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index-Y.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index (Y)</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD CLASS="indexentry"
+>Yellow</TD
+><TD CLASS="indexlinks"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html#v%3AYellow"
+>Language.Haskell.HsColour.ColourHighlight</A
+>, Language.Haskell.HsColour.Colourise, <A HREF="Language-Haskell-HsColour-ANSI.html#v%3AYellow"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/doc-index.html b/docs/hscolour/doc-index.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/doc-index.html
@@ -0,0 +1,128 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour (Index)</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Index</TD
+></TR
+><TR
+><TD
+><TABLE CELLPADDING="0" CELLSPACING="5"
+><TR
+><TD
+><A HREF="doc-index-B.html"
+>B</A
+></TD
+><TD
+><A HREF="doc-index-C.html"
+>C</A
+></TD
+><TD
+><A HREF="doc-index-D.html"
+>D</A
+></TD
+><TD
+><A HREF="doc-index-E.html"
+>E</A
+></TD
+><TD
+><A HREF="doc-index-F.html"
+>F</A
+></TD
+><TD
+><A HREF="doc-index-G.html"
+>G</A
+></TD
+><TD
+><A HREF="doc-index-H.html"
+>H</A
+></TD
+><TD
+><A HREF="doc-index-I.html"
+>I</A
+></TD
+><TD
+><A HREF="doc-index-K.html"
+>K</A
+></TD
+><TD
+><A HREF="doc-index-L.html"
+>L</A
+></TD
+><TD
+><A HREF="doc-index-M.html"
+>M</A
+></TD
+><TD
+><A HREF="doc-index-N.html"
+>N</A
+></TD
+><TD
+><A HREF="doc-index-O.html"
+>O</A
+></TD
+><TD
+><A HREF="doc-index-R.html"
+>R</A
+></TD
+><TD
+><A HREF="doc-index-S.html"
+>S</A
+></TD
+><TD
+><A HREF="doc-index-T.html"
+>T</A
+></TD
+><TD
+><A HREF="doc-index-U.html"
+>U</A
+></TD
+><TD
+><A HREF="doc-index-V.html"
+>V</A
+></TD
+><TD
+><A HREF="doc-index-W.html"
+>W</A
+></TD
+><TD
+><A HREF="doc-index-Y.html"
+>Y</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/haddock.css b/docs/hscolour/haddock.css
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/haddock.css
@@ -0,0 +1,260 @@
+/* -------- Global things --------- */
+
+BODY { 
+  background-color: #ffffff;
+  color: #000000;
+  font-family: sans-serif;
+  } 
+
+A:link    { color: #0000e0; text-decoration: none }
+A:visited { color: #0000a0; text-decoration: none }
+A:hover   { background-color: #e0e0ff; text-decoration: none }
+
+TABLE.vanilla {
+  width: 100%;
+  border-width: 0px;
+  /* I can't seem to specify cellspacing or cellpadding properly using CSS... */
+}
+
+TABLE.vanilla2 {
+  border-width: 0px;
+}
+
+/* <TT> font is a little too small in MSIE */
+TT  { font-size: 100%; }
+PRE { font-size: 100%; }
+
+LI P { margin: 0pt } 
+
+TD {
+  border-width: 0px;
+}
+
+TABLE.narrow {
+  border-width: 0px;
+}
+
+TD.s8  {  height: 8px;  }
+TD.s15 {  height: 15px; }
+
+SPAN.keyword { text-decoration: underline; }
+
+/* Resize the buttom image to match the text size */
+IMG.coll { width : 0.75em; height: 0.75em; margin-bottom: 0; margin-right: 0.5em }
+
+/* --------- Contents page ---------- */
+
+DIV.node {
+  padding-left: 3em;
+}
+
+DIV.cnode {
+  padding-left: 1.75em;
+}
+
+SPAN.pkg {
+  position: absolute;
+  left: 50em;
+}
+
+/* --------- Documentation elements ---------- */
+
+TD.children {
+  padding-left: 25px;
+  }
+
+TD.synopsis {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace
+ }
+
+TD.decl { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  }
+
+TD.topdecl {
+  padding: 2px;
+  background-color: #f0f0f0;
+  font-family: monospace;
+  vertical-align: top;
+}
+
+TABLE.declbar {
+  border-spacing: 0px;
+ }
+
+TD.declname {
+  width: 100%;
+ }
+
+TD.declbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #000099;
+  border-left-style: solid;
+  white-space: nowrap;
+  font-size: small;
+ }
+
+/* 
+  arg is just like decl, except that wrapping is not allowed.  It is
+  used for function and constructor arguments which have a text box
+  to the right, where if wrapping is allowed the text box squashes up
+  the declaration by wrapping it.
+*/
+TD.arg { 
+  padding: 2px;
+  background-color: #f0f0f0; 
+  font-family: monospace;
+  vertical-align: top;
+  white-space: nowrap;
+  }
+
+TD.recfield { padding-left: 20px }
+
+TD.doc  { 
+  padding-top: 2px;
+  padding-left: 10px;
+  }
+
+TD.ndoc  { 
+  padding: 2px;
+  }
+
+TD.rdoc  { 
+  padding: 2px;
+  padding-left: 10px;
+  width: 100%;
+  }
+
+TD.body  { 
+  padding-left: 10px
+  }
+
+TD.pkg {
+  width: 100%;
+  padding-left: 10px
+}
+
+TD.indexentry {
+  vertical-align: top;
+  padding-right: 10px
+  }
+
+TD.indexannot {
+  vertical-align: top;
+  padding-left: 20px;
+  white-space: nowrap
+  }
+
+TD.indexlinks {
+  width: 100%
+  }
+
+/* ------- Section Headings ------- */
+
+TD.section1 {
+  padding-top: 15px;
+  font-weight: bold;
+  font-size: 150%
+  }
+
+TD.section2 {
+  padding-top: 10px;
+  font-weight: bold;
+  font-size: 130%
+  }
+
+TD.section3 {
+  padding-top: 5px;
+  font-weight: bold;
+  font-size: 110%
+  }
+
+TD.section4 {
+  font-weight: bold;
+  font-size: 100%
+  }
+
+/* -------------- The title bar at the top of the page */
+
+TD.infohead {
+  color: #ffffff;
+  font-weight: bold;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.infoval {
+  color: #ffffff;
+  padding-right: 10px;
+  text-align: left;
+}
+
+TD.topbar {
+  background-color: #000099;
+  padding: 5px;
+}
+
+TD.title {
+  color: #ffffff;
+  padding-left: 10px;
+  width: 100%
+  }
+
+TD.topbut {
+  padding-left: 5px;
+  padding-right: 5px;
+  border-left-width: 1px;
+  border-left-color: #ffffff;
+  border-left-style: solid;
+  white-space: nowrap;
+  }
+
+TD.topbut A:link {
+  color: #ffffff
+  }
+
+TD.topbut A:visited {
+  color: #ffff00
+  }
+
+TD.topbut A:hover {
+  background-color: #6060ff;
+  }
+
+TD.topbut:hover {
+  background-color: #6060ff
+  }
+
+TD.modulebar { 
+  background-color: #0077dd;
+  padding: 5px;
+  border-top-width: 1px;
+  border-top-color: #ffffff;
+  border-top-style: solid;
+  }
+
+/* --------- The page footer --------- */
+
+TD.botbar {
+  background-color: #000099;
+  color: #ffffff;
+  padding: 5px
+  }
+TD.botbar A:link {
+  color: #ffffff;
+  text-decoration: underline
+  }
+TD.botbar A:visited {
+  color: #ffff00
+  }
+TD.botbar A:hover {
+  background-color: #6060ff
+  }
+
diff --git a/docs/hscolour/haddock.js b/docs/hscolour/haddock.js
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/haddock.js
@@ -0,0 +1,15 @@
+// Haddock JavaScript utilities
+function toggle(button,id)
+{
+   var n = document.getElementById(id).style;
+   if (n.display == "none")
+   {
+	button.src = "minus.gif";
+	n.display = "block";
+   }
+   else
+   {
+	button.src = "plus.gif";
+	n.display = "none";
+   }
+}
diff --git a/docs/hscolour/haskell_icon.gif b/docs/hscolour/haskell_icon.gif
new file mode 100644
Binary files /dev/null and b/docs/hscolour/haskell_icon.gif differ
diff --git a/docs/hscolour/index.html b/docs/hscolour/index.html
new file mode 100644
--- /dev/null
+++ b/docs/hscolour/index.html
@@ -0,0 +1,185 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--Rendered using the Haskell Html Library v0.2-->
+<HTML
+><HEAD
+><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
+><TITLE
+>hscolour</TITLE
+><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
+><SCRIPT SRC="haddock.js" TYPE="text/javascript"
+></SCRIPT
+></HEAD
+><BODY
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD CLASS="topbar"
+><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD
+><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" "
+></TD
+><TD CLASS="title"
+>hscolour</TD
+><TD CLASS="topbut"
+><A HREF="index.html"
+>Contents</A
+></TD
+><TD CLASS="topbut"
+><A HREF="doc-index.html"
+>Index</A
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="section1"
+>Modules</TD
+></TR
+><TR
+><TD
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0"
+><TR
+><TD STYLE="width: 50em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:0')" ALT="show/hide"
+>Language</TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:0" STYLE="display:block;"
+><TR
+><TD STYLE="width: 48em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:1')" ALT="show/hide"
+>Haskell</TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:1" STYLE="display:block;"
+><TR
+><TD STYLE="width: 46em"
+><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'n:2')" ALT="show/hide"
+><A HREF="Language-Haskell-HsColour.html"
+>Language.Haskell.HsColour</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding: 0; padding-left: 2em" COLSPAN="3"
+><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:2" STYLE="display:block;"
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-ANSI.html"
+>Language.Haskell.HsColour.ANSI</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-Anchors.html"
+>Language.Haskell.HsColour.Anchors</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-CSS.html"
+>Language.Haskell.HsColour.CSS</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-Classify.html"
+>Language.Haskell.HsColour.Classify</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-ColourHighlight.html"
+>Language.Haskell.HsColour.ColourHighlight</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-Colourise.html"
+>Language.Haskell.HsColour.Colourise</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-HTML.html"
+>Language.Haskell.HsColour.HTML</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+><TR
+><TD STYLE="padding-left: 1.25em;width: 44em"
+><A HREF="Language-Haskell-HsColour-TTY.html"
+>Language.Haskell.HsColour.TTY</A
+></TD
+><TD
+></TD
+><TD
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+></TABLE
+></TD
+></TR
+><TR
+><TD CLASS="s15"
+></TD
+></TR
+><TR
+><TD CLASS="botbar"
+>Produced by <A HREF="http://www.haskell.org/haddock/"
+>Haddock</A
+> version 0.8</TD
+></TR
+></TABLE
+></BODY
+></HTML
+>
diff --git a/docs/hscolour/minus.gif b/docs/hscolour/minus.gif
new file mode 100644
Binary files /dev/null and b/docs/hscolour/minus.gif differ
diff --git a/docs/hscolour/plus.gif b/docs/hscolour/plus.gif
new file mode 100644
Binary files /dev/null and b/docs/hscolour/plus.gif differ
diff --git a/hscolour.cabal b/hscolour.cabal
new file mode 100644
--- /dev/null
+++ b/hscolour.cabal
@@ -0,0 +1,30 @@
+Name: hscolour
+Version: 1.6
+Copyright: Malcolm Wallace, University of York, 2003-2005, Bjorn Bringert 2006
+Maintainer: Malcolm Wallace
+Author: Malcolm Wallace
+Homepage: http://www.cs.york.ac.uk/fp/darcs/hscolour/
+License: GPL
+License-file: LICENCE-GPL
+Build-depends: haskell98, base
+Extensions: 
+Synopsis: Colourise Haskell code.
+Description:
+  hscolour is a small Haskell script to colourise Haskell code. It currently
+  has four output formats: 
+  ANSI terminal codes, HTML with <font> tags, HTML with CSS, and LaTeX.
+Exposed-Modules: 
+  Language.Haskell.HsColour,
+  Language.Haskell.HsColour.ANSI,
+  Language.Haskell.HsColour.Anchors,
+  Language.Haskell.HsColour.Classify,
+  Language.Haskell.HsColour.ColourHighlight,
+  Language.Haskell.HsColour.Colourise,
+  Language.Haskell.HsColour.TTY,
+  Language.Haskell.HsColour.HTML,
+  Language.Haskell.HsColour.LaTeX,
+  Language.Haskell.HsColour.CSS
+ghc-options: -O2 -W
+
+Executable: HsColour
+Main-is: HsColour.hs
diff --git a/hscolour.css b/hscolour.css
new file mode 100644
--- /dev/null
+++ b/hscolour.css
@@ -0,0 +1,5 @@
+
+.keyglyph, .layout {color: red;}
+.keyword {color: blue;}
+.comment, .comment a {color: green;}
+.str, .chr {color: teal;}
diff --git a/index.html b/index.html
new file mode 100644
--- /dev/null
+++ b/index.html
@@ -0,0 +1,184 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><title>hscolour</title></head>
+<body bgcolor="#ffffff">
+<table><tr><td width=700>
+
+<center>
+  <h1>hscolour</h1>
+</center>
+<hr>
+
+<p>
+<b>hscolour</b> is a small Haskell script to colourise Haskell code.
+It currently has four output formats: ANSI terminal codes, HTML with
+&lt;font&gt; tags, HTML with CSS, and LaTeX.
+
+<h2>Example</h2>
+<p>
+Here's a little example of the HTML output:<br>
+<pre>    <u><font color=Green>module</font></u> Main <font color=Cyan>(</font>main<font color=Cyan>)</font> <u><font color=Green>where</font></u>
+    <u><font color=Green>import</font></u> Prelude 
+    
+    <font color=Blue>-- The notorious nfib "benchmark", but using Doubles.</font>
+    main <font color=Red>=</font> print <font color=Cyan>(</font>nfib <font color=Magenta>30</font><font color=Cyan>)</font>
+    
+    nfib <font color=Red>::</font> Double <font color=Red>-&gt;</font> Double
+    nfib n <font color=Red>=</font> <u><font color=Green>if</font></u> n <font color=Cyan>&lt;=</font> <font color=Magenta>1</font>
+             <u><font color=Green>then</font></u> <font color=Magenta>1</font>
+             <u><font color=Green>else</font></u> nfib <font color=Cyan>(</font>n<font color=Cyan>`subtract`</font><font color=Magenta>1</font><font color=Cyan>)</font> <font color=Cyan>+</font> nfib <font color=Cyan>(</font>n<font color=Cyan>`subtract`</font><font color=Magenta>2</font><font color=Cyan>)</font> <font color=Cyan>+</font> <font color=Magenta>1</font>
+</pre>
+
+<h2>Download</h2>
+<p>
+<ul>
+<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>
+<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
+     <a href="http://www.cs.york.ac.uk/fp/darcs/">darcsweb</a>.
+<li> A Windows binary is available at
+     <a href="ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/hscolour-1.3-win.zip">
+     ftp://ftp.cs.york.ac.uk/pub/haskell/contrib/hscolour-1.3-win.zip</a>
+</ul>
+
+<h2>Build</h2>
+<p>
+Just use one of the standard ways of building a Haskell program:
+<ul>
+<li><tt>hmake HsColour</tt>
+<li><tt>ghc --make HsColour</tt>
+<li><tt>runhugs HsColour</tt>
+</ul>
+
+<h2>Use</h2>
+<p>
+<ul>
+<li><tt>HsColour [ -tty | -html | -css | -latex | -anchorHTML | -anchorCSS ] [file.hs]</tt>
+</ul>
+<p>
+You can colourise a Haskell source file for either ANSI terminal codes
+(option -tty), or HTML with font tags (option -html), or HTML output
+with CSS (option -css), or for LaTeX.  The default is for terminal output.
+<p>
+If no file argument is given, it reads standard input.  Output is
+always written to standard output.
+<p>
+HsColour can add named anchors (options -anchorHTML or -anchorCSS) to
+top-level definitions in the source file (functions, datatypes,
+classes).  This enables you to make links to a specific location in the
+generated file with the standard <tt>file.html#anchor</tt> notation
+(e.g. from <a href="http://haskell.org/haddock">haddock</a>-generated
+library documentation).  <a href="#haddock">See below for details.</a>
+
+
+<h2>Configuration of colours</h2>
+<p>
+If you use either -html, -tty, or -latex, you can configure the colours for
+different lexical entities by editing a configuration file called
+<tt>.hscolour</tt> in the current directory.
+(An <a href=".hscolour">example</a> is included in the distribution.)
+For CSS output, it is sufficient to edit the
+<a href="hscolour.css"><tt>hscolour.css</tt></a> file, also in
+the distribution.
+
+<p>
+The <tt>.hscolour</tt> file format is a simple Haskell value of type
+ColourPrefs, constructed using named fields, as follows:
+
+<pre>  <u><font color=Green>data</font></u> ColourPrefs <font color=Red>=</font> ColourPrefs
+    <font color=Cyan>{</font> keyword<font color=Cyan>,</font> keyglyph<font color=Cyan>,</font> layout<font color=Cyan>,</font> comment
+    <font color=Cyan>,</font> conid<font color=Cyan>,</font> varid<font color=Cyan>,</font> conop<font color=Cyan>,</font> varop
+    <font color=Cyan>,</font> string<font color=Cyan>,</font> char<font color=Cyan>,</font> number
+    <font color=Cyan>,</font> selection<font color=Cyan>,</font> variantselection <font color=Red>::</font> <font color=Red>[</font>Highlight<font color=Red>]</font>
+    <font color=Cyan>}</font>
+
+  <u><font color=Green>data</font></u> Colour <font color=Red>=</font> Black <font color=Red>|</font> Red <font color=Red>|</font> Green <font color=Red>|</font> Yellow <font color=Red>|</font> Blue <font color=Red>|</font> Magenta <font color=Red>|</font> Cyan <font color=Red>|</font> White
+
+  <u><font color=Green>data</font></u> Highlight <font color=Red>=</font>
+      Normal
+    <font color=Red>|</font> Bold
+    <font color=Red>|</font> Dim
+    <font color=Red>|</font> Underscore
+    <font color=Red>|</font> Blink
+    <font color=Red>|</font> ReverseVideo
+    <font color=Red>|</font> Concealed
+    <font color=Red>|</font> Foreground Colour
+    <font color=Red>|</font> Background Colour
+</pre>
+
+<p>
+<h2>Use it as a library</h2>
+If you want to incorporate hscolour-like functionality into your own
+Haskell program, it is now (from 1.4) also available as a library,
+thanks to Bj&ouml;rn Bringert.  The library is Cabal-ised, so just do
+the usual thing to install it as a package:
+<ul>
+<li><tt>runhaskell Setup.hs configure</tt>
+<li><tt>runhaskell Setup.hs build</tt>
+<li><tt>runhaskell Setup.hs install</tt>
+</ul>
+There is
+<a href="docs/hscolour/index.html">haddock documentation of the API</a>.
+
+<p>
+<a name="haddock"></a>
+<h2>Using HsColour with Haddock</h2>
+Let's say you want to generate some pretty-coloured HTML versions of
+your source files, at the same time as you are generating library
+documentation using <a href="http://haskell.org/haddock">Haddock</a>.
+Haddock (1.8 onwards, currently only available in darcs) has options
+to link the API docs to the source code itself.  Here is a quick summary
+of the shell commands to use:
+<pre>
+for file in $(SRCS)
+do HsColour -anchorHTML $file &gt;docs/`dirname $file'/`basename $file .hs`.html
+done
+haddock --html --title="My Library" --odir=docs   $(SRCS) \
+    --source-module="src/%{MODULE/.//}.html" \
+    --source-entity="src/%{MODULE/.//}.html#%{NAME}"
+</pre>
+
+<p>
+<h2>Copyright and licence</h2>
+<b>hscolour</b> is &copy; Malcolm Wallace 2003-2006.  It is distributed
+under the Gnu GPL, which can be found in the file
+<a href="LICENCE-GPL">LICENCE-GPL</a>.
+
+<h2>Shortcomings</h2>
+<p>
+HsColour is not yet able to add anchors to class methods, nor to
+<em>foreign</em> decls.
+
+<h2>Alternatives</h2>
+<p>
+The <a href="http://www.cse.ogi.edu/~hallgren/Programatica/tools/pfe.cgi">
+Programatica</a> project has a more sophisticated HTML
+syntax-highlighter.  It hyperlinks every usage of an identifier to its
+definition, which is highly useful for browsing large amounts of code.
+However, it is a more heavyweight solution as well - requiring the
+entire front-end of a compiler not only to parse the Haskell code, but
+to chase all its module dependencies as well.  As a consequence, you need
+source access to every definition used in your program, including the
+Prelude and all library packages...
+
+<h2>History</h2>
+<p>
+<dl>
+<dt>1.6</dt><dd> added -latex output mode</dd>
+<dt>1.5</dt><dd> move generated HTML anchors to before comments/typesigs</dd>
+<dt>1.4</dt><dd> made available as a Cabal-ised library</dd>
+<dt>1.3</dt><dd> added HTML and CSS anchors</dd>
+<dt>1.2</dt><dd> added CSS output mode (from Neil Mitchell)</dd>
+<dt>1.1</dt><dd> fixed compatibility with ghc-6.4</dd>
+<dt>1.0</dt><dd> first release</dd>
+</dl>
+
+<p>
+This page last modified: 21st December 2006<br>
+Malcolm Wallace<br>
+
+</td></tr></table>
+</body></html>
+
