diff --git a/INSTALL b/INSTALL
--- a/INSTALL
+++ b/INSTALL
@@ -32,7 +32,7 @@
 Unpack the archive. Assume that it has been unpacked into directory
 "/somewhere". Then say
 
-cd /somewhere/lhs2TeX-1.19
+cd /somewhere/lhs2TeX-1.20
 ./configure
 make
 make install
@@ -48,18 +48,17 @@
 lhs2TeX binary. The default search path is as follows:
 
 .
-{HOME}/lhs2tex-1.19//
+{HOME}/lhs2tex-1.20//
 {HOME}/lhs2tex//
 {HOME}/lhs2TeX//
-{HOME}/.lhs2tex-1.19//
+{HOME}/.lhs2tex-1.20//
 {HOME}/.lhs2tex//
 {HOME}/.lhs2TeX//
 {LHS2TEX}//
-/usr/local/share/lhs2tex-1.19//
-/usr/local/share/lhs2tex-1.19//
-/usr/local/lib/lhs2tex-1.19//
-/usr/share/lhs2tex-1.19//
-/usr/lib/lhs2tex-1.19//
+/usr/local/share/lhs2tex-1.20//
+/usr/local/lib/lhs2tex-1.20//
+/usr/share/lhs2tex-1.20//
+/usr/lib/lhs2tex-1.20//
 /usr/local/share/lhs2tex//
 /usr/local/lib/lhs2tex//
 /usr/share/lhs2tex//
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 1997-2005 Ralf Hinze, Andres Loeh
+Copyright (c) 1997-2017 Ralf Hinze, Andres Loeh
 
 This package is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
diff --git a/Library/beamerboxed.fmt b/Library/beamerboxed.fmt
--- a/Library/beamerboxed.fmt
+++ b/Library/beamerboxed.fmt
diff --git a/Library/forall.fmt b/Library/forall.fmt
--- a/Library/forall.fmt
+++ b/Library/forall.fmt
diff --git a/Library/greek.fmt b/Library/greek.fmt
--- a/Library/greek.fmt
+++ b/Library/greek.fmt
diff --git a/Library/spacing.fmt b/Library/spacing.fmt
--- a/Library/spacing.fmt
+++ b/Library/spacing.fmt
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -3,7 +3,7 @@
                                   CopyFlags(..),RegisterFlags(..),InstallFlags(..),
                                   defaultRegisterFlags,fromFlagOrDefault,Flag(..),
                                   defaultCopyFlags)
-import Distribution.Simple
+import Distribution.Simple  (UserHooks(..), simpleUserHooks, defaultMainWithHooks)
 import Distribution.Simple.LocalBuildInfo
                             (LocalBuildInfo(..),absoluteInstallDirs)
 import Distribution.Simple.Configure (configCompilerAux)
@@ -34,9 +34,9 @@
 minPolytableVersion = [0,8,2]
 shortversion = show (numversion `div` 100) ++ "." ++ show (numversion `mod` 100)
 version = shortversion ++ if ispre then "pre" ++ show pre else ""
-numversion = 119
+numversion = 120
 ispre = False
-pre = 2
+pre = 1
 
 main = defaultMainWithHooks lhs2texHooks
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for lhs2tex 1.19.
+# Generated by GNU Autoconf 2.69 for lhs2tex 1.20.
 #
 #
 # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@@ -576,8 +576,8 @@
 # Identity of this package.
 PACKAGE_NAME='lhs2tex'
 PACKAGE_TARNAME='lhs2tex'
-PACKAGE_VERSION='1.19'
-PACKAGE_STRING='lhs2tex 1.19'
+PACKAGE_VERSION='1.20'
+PACKAGE_STRING='lhs2tex 1.20'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1203,7 +1203,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures lhs2tex 1.19 to adapt to many kinds of systems.
+\`configure' configures lhs2tex 1.20 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1264,7 +1264,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of lhs2tex 1.19:";;
+     short | recursive ) echo "Configuration of lhs2tex 1.20:";;
    esac
   cat <<\_ACEOF
 
@@ -1342,7 +1342,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-lhs2tex configure 1.19
+lhs2tex configure 1.20
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1359,7 +1359,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by lhs2tex $as_me 1.19, which was
+It was created by lhs2tex $as_me 1.20, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1708,10 +1708,10 @@
 
 
 
-VERSION="1.19"
-SHORTVERSION="1.19"
-NUMVERSION=119
-PRE=2
+VERSION="1.20"
+SHORTVERSION="1.20"
+NUMVERSION=120
+PRE=1
 
 
 
@@ -3347,7 +3347,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by lhs2tex $as_me 1.19, which was
+This file was extended by lhs2tex $as_me 1.20, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -3400,7 +3400,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-lhs2tex config.status 1.19
+lhs2tex config.status 1.20
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/doc/AGExampleIn.lhs b/doc/AGExampleIn.lhs
--- a/doc/AGExampleIn.lhs
+++ b/doc/AGExampleIn.lhs
@@ -1,10 +1,10 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
+\let\origtt=\ttfamily
 %if stc
 \let\small\scriptsize
 %endif
-\def\tt#1#2{\origtt\makebox[0pt]{\phantom{X}}}
+\def\ttfamily#1#2{\origtt\makebox[0pt]{\phantom{X}}}
 
 >%format ^  = " "
 >%format ^^ = "\;"
diff --git a/doc/CalcExampleIn.lhs b/doc/CalcExampleIn.lhs
--- a/doc/CalcExampleIn.lhs
+++ b/doc/CalcExampleIn.lhs
@@ -1,10 +1,10 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
+\let\origtt=\ttfamily
 %if stc
 \let\small\scriptsize
 %endif
-\def\tt#1#2{\origtt\makebox[0pt]{\phantom{X}}}
+\def\ttfamily#1#2{\origtt\makebox[0pt]{\phantom{X}}}
 
 >\def\commentbegin{\quad\{\ }
 >\def\commentend{\}}
diff --git a/doc/CardIn.lhs b/doc/CardIn.lhs
--- a/doc/CardIn.lhs
+++ b/doc/CardIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >%format abs (a) = "\mathopen{|}" a "\mathclose{|}"
 >%format ~>      = "\leadsto"
 >The |abs| function computes the absolute value of 
diff --git a/doc/ConfigureCall.lhs b/doc/ConfigureCall.lhs
--- a/doc/ConfigureCall.lhs
+++ b/doc/ConfigureCall.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 $ ./configure --prefix=/my/local/programs
 \end{code}
diff --git a/doc/FormatArrow.lhs b/doc/FormatArrow.lhs
--- a/doc/FormatArrow.lhs
+++ b/doc/FormatArrow.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format ~> = "\leadsto "
 
diff --git a/doc/FormatArrow2.lhs b/doc/FormatArrow2.lhs
--- a/doc/FormatArrow2.lhs
+++ b/doc/FormatArrow2.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format ~>* = ~> "^{" * "}"
 
diff --git a/doc/FormatElem.lhs b/doc/FormatElem.lhs
--- a/doc/FormatElem.lhs
+++ b/doc/FormatElem.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format `elem`     = "\in "
 
diff --git a/doc/FormatGreekIn.lhs b/doc/FormatGreekIn.lhs
--- a/doc/FormatGreekIn.lhs
+++ b/doc/FormatGreekIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format alpha = "\alpha"
 >
diff --git a/doc/FormatId.lhs b/doc/FormatId.lhs
--- a/doc/FormatId.lhs
+++ b/doc/FormatId.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format new      = "\mathbf{new}"
 >%format text0    = text
diff --git a/doc/FormatIdentifierExamples.lhs b/doc/FormatIdentifierExamples.lhs
--- a/doc/FormatIdentifierExamples.lhs
+++ b/doc/FormatIdentifierExamples.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format ++         = "\plus "
 >%format undefined  = "\bot "
diff --git a/doc/FormatIdentifierRedefs.lhs b/doc/FormatIdentifierRedefs.lhs
--- a/doc/FormatIdentifierRedefs.lhs
+++ b/doc/FormatIdentifierRedefs.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format ++         = "\mathbin{\mathbf{+}}"
 >%format undefined  = "\Varid{undefined}"
diff --git a/doc/FormatIdentifierWrong.lhs b/doc/FormatIdentifierWrong.lhs
--- a/doc/FormatIdentifierWrong.lhs
+++ b/doc/FormatIdentifierWrong.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%% THE FOLLOWING IS BAD:
 >%format undefined  = "undefined"
diff --git a/doc/FormatRecurse.lhs b/doc/FormatRecurse.lhs
--- a/doc/FormatRecurse.lhs
+++ b/doc/FormatRecurse.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%% THE FOLLOWING IS BAD:
 >%format text = "\mathsf{" text "}"
diff --git a/doc/FormatStar.lhs b/doc/FormatStar.lhs
--- a/doc/FormatStar.lhs
+++ b/doc/FormatStar.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >%format * = "\star "
 
diff --git a/doc/GHExampleIn.lhs b/doc/GHExampleIn.lhs
--- a/doc/GHExampleIn.lhs
+++ b/doc/GHExampleIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
+\let\origtt=\ttfamily
 \let\small\scriptsize
-\def\tt#1#2{\origtt\makebox[0pt]{\phantom{X}}}
+\def\ttfamily#1#2{\origtt\makebox[0pt]{\phantom{X}}}
 
 >%if style == newcode
 >%format ^
diff --git a/doc/GroupExampleIn.lhs b/doc/GroupExampleIn.lhs
--- a/doc/GroupExampleIn.lhs
+++ b/doc/GroupExampleIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 In the beginning: |one|.\par
 %format one = "\mathsf{1}"
diff --git a/doc/Guide2.lhs b/doc/Guide2.lhs
--- a/doc/Guide2.lhs
+++ b/doc/Guide2.lhs
@@ -3,7 +3,7 @@
 % save linebreak; see below
 \let\origlinebreak=\\
 
-\renewcommand{\sectfont}{\bf}
+\renewcommand{\sectfont}{\bfseries}
 
 %let framed = False
 
@@ -407,7 +407,7 @@
 When run on a literate Haskell source file, |lhs2TeX| classifies the
 input into different blocks.
 
-\paragraph{\bf Bird-style code blocks}
+\paragraph{\bfseries Bird-style code blocks}
 %
 In the Bird-style of literate Haskell programming, all lines starting
 with @>@ are interpreted as code. (To be good literate code, you must
@@ -429,7 +429,7 @@
 code extraction through the \textbf{code} and \textbf{newcode}
 styles).
 
-\paragraph{\bf \LaTeX-style code blocks}
+\paragraph{\bfseries \LaTeX-style code blocks}
 %
 The \LaTeX-style of literate programming is to surround code blocks
 with @\begin{code}@ and @\end{code}@.
@@ -450,7 +450,7 @@
 spaces, which means that you have to indent @code@ environments in
 order to create a properly indented Haskell module.
 
-\paragraph{\bf Inline verbatim}
+\paragraph{\bfseries Inline verbatim}
 %
 Text between two \verb+@+ characters that is not in a code block is
 considered inline verbatim. If you actually want a \verb+@+ character
@@ -458,7 +458,7 @@
 need to escape \verb+@+'s in code blocks. For example, \verb+@id :: a
 -> a@+ appears as @id :: a -> a@.
 
-\paragraph{\bf Inline code}
+\paragraph{\bfseries Inline code}
 %
 
 Text between two @|@ characters that is not in a code block is
@@ -466,14 +466,14 @@
 literally outside of code blocks need to be escaped: @||@. For
 example, \verb+|id :: a -> a|+ appears as |id :: a -> a|.
 
-\paragraph{\bf Directives}
+\paragraph{\bfseries Directives}
 %
 A \verb+%+ that is followed by the name of an |lhs2TeX| directive is
 considered as a \textbf{directive} and may cause |lhs2TeX| to take
 special actions. Directives are described in detail in
 Section~\ref{sec:directives}.
 
-\paragraph{\bf Special commands}
+\paragraph{\bfseries Special commands}
 %
 Some commands are treated specially, such as occurrences of the
 \TeX\ commands @\eval@, @\perform@, @\verb@ or of the \LaTeX\
@@ -486,7 +486,7 @@
 by |lhs2TeX|, however, they will behave as they would without
 |lhs2TeX|.
 
-\paragraph{\bf Everything else}
+\paragraph{\bfseries Everything else}
 %
 Everything in the input file that does not fall into one of the above
 cases is is classified as \textbf{plain text} and will simply pass
diff --git a/doc/Guide2.pdf b/doc/Guide2.pdf
Binary files a/doc/Guide2.pdf and b/doc/Guide2.pdf differ
diff --git a/doc/HelloWorldBirdInput.lhs b/doc/HelloWorldBirdInput.lhs
--- a/doc/HelloWorldBirdInput.lhs
+++ b/doc/HelloWorldBirdInput.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >
 >> main  ::  IO ()
diff --git a/doc/HelloWorldBirdSpecInput.lhs b/doc/HelloWorldBirdSpecInput.lhs
--- a/doc/HelloWorldBirdSpecInput.lhs
+++ b/doc/HelloWorldBirdSpecInput.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >
 >< main  ::  IO ()
diff --git a/doc/HelloWorldCodeInput.lhs b/doc/HelloWorldCodeInput.lhs
--- a/doc/HelloWorldCodeInput.lhs
+++ b/doc/HelloWorldCodeInput.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\begin{code}
 >main  ::  IO ()
diff --git a/doc/HelloWorldDialogue.lhs b/doc/HelloWorldDialogue.lhs
--- a/doc/HelloWorldDialogue.lhs
+++ b/doc/HelloWorldDialogue.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 $ lhs2TeX -o HelloWorld.tex HelloWorld.lhs
 $ pdflatex HelloWorld.tex
diff --git a/doc/HelloWorldInput.lhs b/doc/HelloWorldInput.lhs
--- a/doc/HelloWorldInput.lhs
+++ b/doc/HelloWorldInput.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\documentclass{article}
 >%include polycode.fmt
diff --git a/doc/HelloWorldSpecInput.lhs b/doc/HelloWorldSpecInput.lhs
--- a/doc/HelloWorldSpecInput.lhs
+++ b/doc/HelloWorldSpecInput.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\begin{spec}
 >main  ::  IO ()
diff --git a/doc/HsIndent.lhs b/doc/HsIndent.lhs
--- a/doc/HsIndent.lhs
+++ b/doc/HsIndent.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\newcommand{\hsindent}[1]{\quad}
 
diff --git a/doc/ImplicitIn.lhs b/doc/ImplicitIn.lhs
--- a/doc/ImplicitIn.lhs
+++ b/doc/ImplicitIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >%format omega = "\omega"
 >|[omega, omega13, omega', omega13']|\par
 >%format omega13
diff --git a/doc/ImplicitUnderscoreIn.lhs b/doc/ImplicitUnderscoreIn.lhs
--- a/doc/ImplicitUnderscoreIn.lhs
+++ b/doc/ImplicitUnderscoreIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >%format a_i
 >%format a_j
 >%format left  = "\leftarrow "
diff --git a/doc/IncludePrelude.lhs b/doc/IncludePrelude.lhs
--- a/doc/IncludePrelude.lhs
+++ b/doc/IncludePrelude.lhs
@@ -1,5 +1,5 @@
 %include tex.fmt
-%subst string a = "\text{\tt " a "}"
+%subst string a = "\text{\ttfamily " a "}"
 
 \begin{code}
 dir(include) "lhs2TeX.fmt"
diff --git a/doc/Indent2In.lhs b/doc/Indent2In.lhs
--- a/doc/Indent2In.lhs
+++ b/doc/Indent2In.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt \makebox[0pt]{\phantom{X}}}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt \makebox[0pt]{\phantom{X}}}
 \begin{code}
 unionBy           ::  (a -> a -> Bool) -> [a] -> [a] -> [a]
 unionBy eq xs ys  =   xs ++ foldl (flip (deleteBy eq))
diff --git a/doc/Indent3In.lhs b/doc/Indent3In.lhs
--- a/doc/Indent3In.lhs
+++ b/doc/Indent3In.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt \makebox[0pt]{\phantom{X}}}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt \makebox[0pt]{\phantom{X}}}
 >%format foo = verylongfoo
 >\begin{code}
 >test  1
diff --git a/doc/InteractiveGhciIn.lhs b/doc/InteractiveGhciIn.lhs
--- a/doc/InteractiveGhciIn.lhs
+++ b/doc/InteractiveGhciIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 %if False
 module InteractiveGhci where
 %endif
diff --git a/doc/InteractiveHugsIn.lhs b/doc/InteractiveHugsIn.lhs
--- a/doc/InteractiveHugsIn.lhs
+++ b/doc/InteractiveHugsIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 %if False
 module InteractiveHugs where
 %endif
diff --git a/doc/InteractivePreIn.lhs b/doc/InteractivePreIn.lhs
--- a/doc/InteractivePreIn.lhs
+++ b/doc/InteractivePreIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 %if style == newcode
 
 module InteractivePre where
diff --git a/doc/MkTeXLsrCall.lhs b/doc/MkTeXLsrCall.lhs
--- a/doc/MkTeXLsrCall.lhs
+++ b/doc/MkTeXLsrCall.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 $ mktexlsr
 \end{code}
diff --git a/doc/ParensExample2In.lhs b/doc/ParensExample2In.lhs
--- a/doc/ParensExample2In.lhs
+++ b/doc/ParensExample2In.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >%format eval a = "\llbracket " a "\rrbracket "
 >\begin{code}
 >size (eval (2 + 2)) 
diff --git a/doc/ParensExampleIn.lhs b/doc/ParensExampleIn.lhs
--- a/doc/ParensExampleIn.lhs
+++ b/doc/ParensExampleIn.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >%format ^^                = "\;"
 >%format (ptest (a) b (c)) = ptest ^^ a ^^ b ^^ c
 >\begin{code}
diff --git a/doc/PlusDefinition.lhs b/doc/PlusDefinition.lhs
--- a/doc/PlusDefinition.lhs
+++ b/doc/PlusDefinition.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\newcommand{\plus}{\mathbin{+\!\!\!+}}
 
diff --git a/doc/PolyPrelude.lhs b/doc/PolyPrelude.lhs
--- a/doc/PolyPrelude.lhs
+++ b/doc/PolyPrelude.lhs
@@ -1,7 +1,7 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 
 >\documentclass{article}
 >%include polycode.fmt
diff --git a/doc/RawSearchPath.lhs b/doc/RawSearchPath.lhs
--- a/doc/RawSearchPath.lhs
+++ b/doc/RawSearchPath.lhs
@@ -1,17 +1,16 @@
 \begin{code}
 .
-{HOME}/lhs2tex-1.19//
+{HOME}/lhs2tex-1.20//
 {HOME}/lhs2tex//
 {HOME}/lhs2TeX//
-{HOME}/.lhs2tex-1.19//
+{HOME}/.lhs2tex-1.20//
 {HOME}/.lhs2tex//
 {HOME}/.lhs2TeX//
 {LHS2TEX}//
-/usr/local/share/lhs2tex-1.19//
-/usr/local/share/lhs2tex-1.19//
-/usr/local/lib/lhs2tex-1.19//
-/usr/share/lhs2tex-1.19//
-/usr/lib/lhs2tex-1.19//
+/usr/local/share/lhs2tex-1.20//
+/usr/local/lib/lhs2tex-1.20//
+/usr/share/lhs2tex-1.20//
+/usr/lib/lhs2tex-1.20//
 /usr/local/share/lhs2tex//
 /usr/local/lib/lhs2tex//
 /usr/share/lhs2tex//
diff --git a/doc/SaveRestoreIn.lhs b/doc/SaveRestoreIn.lhs
--- a/doc/SaveRestoreIn.lhs
+++ b/doc/SaveRestoreIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1#2{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1#2{\origtt}
 >\savecolumns
 >\begin{code}
 >intersperse               ::  a -> [a] -> [a]
diff --git a/doc/SearchPath.lhs b/doc/SearchPath.lhs
--- a/doc/SearchPath.lhs
+++ b/doc/SearchPath.lhs
@@ -1,6 +1,6 @@
 %include verbatim.fmt
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 %include RawSearchPath.lhs
 \endgroup
diff --git a/doc/SpacingOps.lhs b/doc/SpacingOps.lhs
--- a/doc/SpacingOps.lhs
+++ b/doc/SpacingOps.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 %format ^  = " "
 %format ^^ = "\;"
diff --git a/doc/SpacingOpsCond.lhs b/doc/SpacingOpsCond.lhs
--- a/doc/SpacingOpsCond.lhs
+++ b/doc/SpacingOpsCond.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt}
 \begin{code}
 %if style == newcode
 %format ^  =
diff --git a/doc/Zip.lhs b/doc/Zip.lhs
--- a/doc/Zip.lhs
+++ b/doc/Zip.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt\makebox[0pt]{\phantom{X}}}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt\makebox[0pt]{\phantom{X}}}
 \begin{code}
 zip                     :: [a] -> [b] -> [(a,b)]
 zip                     =  zipWith  (\a b -> (a,b))
diff --git a/doc/ZipPolyIn.lhs b/doc/ZipPolyIn.lhs
--- a/doc/ZipPolyIn.lhs
+++ b/doc/ZipPolyIn.lhs
@@ -1,8 +1,8 @@
 %include verbatim.fmt
 
 \begingroup
-\let\origtt=\tt
-\def\tt#1{\origtt\makebox[0pt]{\phantom{X}}}
+\let\origtt=\ttfamily
+\def\ttfamily#1{\origtt\makebox[0pt]{\phantom{X}}}
 \begin{code}
 zip                        ::  [a] -> [b] -> [(a,b)]
 zip                        =   zipWith  (\a b -> (a,b))
diff --git a/doc/poly.fmt b/doc/poly.fmt
--- a/doc/poly.fmt
+++ b/doc/poly.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
@@ -228,8 +228,8 @@
 %subst varid a   	= "\Varid{" a "}"
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
diff --git a/doc/polytt.fmt b/doc/polytt.fmt
--- a/doc/polytt.fmt
+++ b/doc/polytt.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
diff --git a/doc/stupid.fmt b/doc/stupid.fmt
--- a/doc/stupid.fmt
+++ b/doc/stupid.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
@@ -227,8 +227,8 @@
 %subst varid a   	= "\Varid{" a "}"
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
diff --git a/doc/tex.fmt b/doc/tex.fmt
--- a/doc/tex.fmt
+++ b/doc/tex.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
@@ -227,8 +227,8 @@
 %subst varid a   	= "\Varid{" a "}"
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
diff --git a/doc/typewriter.fmt b/doc/typewriter.fmt
--- a/doc/typewriter.fmt
+++ b/doc/typewriter.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
@@ -230,8 +230,8 @@
 %subst varid a   	= "\Varid{" a "}"
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
diff --git a/doc/verbatim.fmt b/doc/verbatim.fmt
--- a/doc/verbatim.fmt
+++ b/doc/verbatim.fmt
@@ -1,6 +1,6 @@
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 %if style == tt
 %subst inline a  = "\text{\texfamily " a "}"
 %subst thinspace = "\Sp "
@@ -227,8 +227,8 @@
 %subst varid a   	= "\Varid{" a "}"
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
@@ -378,4 +378,4 @@
 %endif
 %endif
 
-%subst verbatim a = "\begin{colorverb}'n\tt " a "\end{colorverb}'n" 
+%subst verbatim a = "\begin{colorverb}'n\ttfamily " a "\end{colorverb}'n" 
diff --git a/lhs2TeX.fmt.lit b/lhs2TeX.fmt.lit
--- a/lhs2TeX.fmt.lit
+++ b/lhs2TeX.fmt.lit
@@ -22,9 +22,9 @@
 conditionals at work here.
 %
 \begin{code}
-%subst verb a		= "\text{\tt " a "}"
-%subst verbatim a	= "\begin{tabbing}\tt'n" a "'n\end{tabbing}'n"
-%subst verbnl		= "\\'n\tt "
+%subst verb a		= "\text{\ttfamily " a "}"
+%subst verbatim a	= "\begin{tabbing}\ttfamily'n" a "'n\end{tabbing}'n"
+%subst verbnl		= "\\'n\ttfamily "
 \end{code}
 
 %-------------------------------=  --------------------------------------------
@@ -295,8 +295,8 @@
 %subst consym a  	= "\mathbin{" a "}"
 %subst varsym a  	= "\mathbin{" a "}"
 %subst backquoted a     = "\mathbin{`" a "`}"
-%subst char a    	= "\text{\tt ''" a "''}"
-%subst string a  	= "\text{\tt \char34 " a "\char34}"
+%subst char a    	= "\text{\ttfamily ''" a "''}"
+%subst string a  	= "\text{\ttfamily \char34 " a "\char34}"
 %format _          = "\anonymous "
 %format ->         = "\to "
 %format <-         = "\leftarrow "
diff --git a/lhs2tex.cabal b/lhs2tex.cabal
--- a/lhs2tex.cabal
+++ b/lhs2tex.cabal
@@ -1,16 +1,30 @@
 cabal-version:  >=1.10
 name:           lhs2tex
-version:        1.19
+version:        1.20
 license:        GPL
 license-file:   LICENSE
 author:         Ralf Hinze <ralf.hinze@comlab.ox.ac.uk>, Andres Loeh <lhs2tex@andres-loeh.de>
 maintainer:     Andres Loeh <lhs2tex@andres-loeh.de>
 stability:      stable
-homepage:       http://www.andres-loeh.de/lhs2tex/
+homepage:       https://github.com/kosmikus/lhs2tex
+bug-reports:    https://github.com/kosmikus/lhs2tex/issues
 synopsis:       Preprocessor for typesetting Haskell sources with LaTeX
-description:    Preprocessor for typesetting Haskell sources with LaTeX
+description:
+  This tool is primarily intended for people who want to write articles
+  or books using LaTeX that contain some Haskell code. It works on literate
+  Haskell documents where the non-Haskell parts form essentially a valid
+  LaTeX document, then processes the Haskell code in the document and
+  replaces it with formatted LaTeX output. It is not fully automatic in
+  the sense that it will turn an arbitrary literate Haskell document into
+  a LaTeX document without further work.
+  .
+  Nearly all aspects about the output and formatting are configurable.
+  Output of code can be made using proportional fonts in such a way that
+  even complex horizontal alignment is preserved. The preprocessor can also
+  be invoked in another mode to just extract the Haskell code.
 category:       Development, Language
 build-type:     Custom
+tested-with:    GHC == 7.4.2, GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.1
 extra-source-files:     AUTHORS
                         CHANGELOG
                         INSTALL
@@ -43,6 +57,17 @@
                         configure
                         mkinstalldirs
                         install-sh
+
+custom-setup
+  setup-depends:        base,
+                        Cabal,
+                        directory,
+                        process,
+                        regex-compat
+
+source-repository head
+  type:                 git
+  location:             https://github.com/kosmikus/lhs2tex
 
 executable lhs2TeX
   main-is:              Main.lhs
diff --git a/src/License.lhs b/src/License.lhs
--- a/src/License.lhs
+++ b/src/License.lhs
@@ -8,7 +8,7 @@
 
 > programInfo                   :: String
 > programInfo                   =
->     "lhs2TeX " ++ version ++ ", Copyright (C) 1997-2015 Ralf Hinze, Andres Loeh\n\n\
+>     "lhs2TeX " ++ version ++ ", Copyright (C) 1997-2017 Ralf Hinze, Andres Loeh\n\n\
 >     \lhs2TeX comes with ABSOLUTELY NO WARRANTY;\n\
 >     \for details type `lhs2TeX --warranty'.\n\
 >     \This is free software, and you are welcome to redistribute it\n\
