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.18.1
+cd /somewhere/lhs2TeX-1.19
 ./configure
 make
 make install
@@ -48,18 +48,18 @@
 lhs2TeX binary. The default search path is as follows:
 
 .
-{HOME}/lhs2tex-1.18.1//
+{HOME}/lhs2tex-1.19//
 {HOME}/lhs2tex//
 {HOME}/lhs2TeX//
-{HOME}/.lhs2tex-1.18.1//
+{HOME}/.lhs2tex-1.19//
 {HOME}/.lhs2tex//
 {HOME}/.lhs2TeX//
 {LHS2TEX}//
-/usr/local/share/lhs2tex-1.18.1//
-/usr/local/share/lhs2tex-1.18.1//
-/usr/local/lib/lhs2tex-1.18.1//
-/usr/share/lhs2tex-1.18.1//
-/usr/lib/lhs2tex-1.18.1//
+/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//
 /usr/local/lib/lhs2tex//
 /usr/share/lhs2tex//
diff --git a/Library/polycode.fmt b/Library/polycode.fmt
--- a/Library/polycode.fmt
+++ b/Library/polycode.fmt
@@ -8,7 +8,7 @@
 % literally into other documents, regardless of the conditions or 
 % license applying to these documents.
 %
-% Andres Loeh, November 2008, ver 1.11
+% Andres Loeh, February 2013, ver 1.12
 %
 % TODO: use \[ \] in arrayhs (fleqn problem)
 %       think about penalties and better pagebreaks
@@ -19,7 +19,7 @@
 %let lhs2tex_polycode_fmt_read = True
 %include lhs2TeX.fmt
 %
-%if style /= newcode
+%if style == poly
 %
 %if False
 % The follwing subst replaces the bad default from lhs2TeX.fmt.
diff --git a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
@@ -181,11 +181,11 @@
 	chmod 644 $(DISTDIR)/INSTALL
 	cd doc; $(MAKE) srcdist
 	$(INSTALL) -m 644 polytable/*.{sty,pdf} $(DISTDIR)/polytable
-	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Makefile $(DISTDIR)/Testsuite
+	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Testsuite/Makefile $(DISTDIR)/Testsuite
 	$(INSTALL) -m 644 Examples/*.lhs $(DISTDIR)/Examples
 	$(INSTALL) -m 755 Examples/lhs2TeXpre $(DISTDIR)/Examples
 	$(INSTALL) -m 644 Library/*.fmt $(DISTDIR)/Library
-	tar cvzf $(DISTDIR).tar.gz $(DISTDIR)
+	tar --format=ustar -cvzf $(DISTDIR).tar.gz $(DISTDIR)
 	chmod 644 $(DISTDIR).tar.gz
 
 ifdef DISTTYPE
@@ -211,7 +211,7 @@
 	chmod 644 $(DISTDIR)/INSTALL
 	cd doc; $(MAKE) srcdist
 	$(INSTALL) -m 644 polytable/*.{sty,pdf} $(DISTDIR)/polytable
-	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Makefile $(DISTDIR)/Testsuite
+	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Testsuite/Makefile $(DISTDIR)/Testsuite
 	$(INSTALL) -m 644 Examples/*.lhs $(DISTDIR)/Examples
 	$(INSTALL) -m 755 Examples/lhs2TeXpre $(DISTDIR)/Examples
 	$(INSTALL) -m 644 Library/*.fmt $(DISTDIR)/Library
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE PackageImports #-}
 import Distribution.Simple.Setup (CopyDest(..),ConfigFlags(..),BuildFlags(..),
                                   CopyFlags(..),RegisterFlags(..),InstallFlags(..),
                                   defaultRegisterFlags,fromFlagOrDefault,Flag(..),
@@ -21,9 +22,9 @@
 import Data.Version
 import Control.Exception (try)
 import Control.Monad (when,unless)
-import Text.Regex (matchRegex,matchRegexAll,mkRegex,mkRegexWithOpts,subRegex)
+import "regex-compat" Text.Regex (matchRegex,matchRegexAll,mkRegex,mkRegexWithOpts,subRegex)
 import Text.ParserCombinators.ReadP (readP_to_S)
-import System.Exit
+import System.Exit (ExitCode)
 import System.IO (hGetContents,hClose,hPutStr,stderr)
 import System.Process (runInteractiveProcess,waitForProcess)
 import System.Directory
@@ -31,11 +32,11 @@
 
 lhs2tex = "lhs2TeX"
 minPolytableVersion = [0,8,2]
-shortversion = show (numversion `div` 100) ++ "." ++ show (numversion `mod` 100) ++ ".1"
+shortversion = show (numversion `div` 100) ++ "." ++ show (numversion `mod` 100)
 version = shortversion ++ if ispre then "pre" ++ show pre else ""
-numversion = 118
+numversion = 119
 ispre = False
-pre = 1
+pre = 2
 
 main = defaultMainWithHooks lhs2texHooks
 
@@ -70,33 +71,37 @@
 lhs2texPostConf a cf pd lbi =
     do  let v = fromFlagOrDefault normal (configVerbosity cf)
         -- check polytable
-        (_,b,_) <- runKpseWhichVar "TEXMFLOCAL"
-        b       <- return . stripQuotes . stripNewlines $ b
-        ex      <- return (not . all isSpace $ b) -- or check if directory exists?
-        b       <- if ex then return b
-                         else do  (_,b,_) <- (runKpseWhichVar "TEXMFMAIN")
-                                  return . stripQuotes . stripNewlines $ b
-        ex      <- return (not . all isSpace $ b) -- or check if directory exists?
-        i       <- if ex then
-                   do  (_,p,_) <- runKpseWhich "polytable.sty"
-                       p       <- return . stripNewlines $ p
-                       ex      <- doesFileExist p
-                       nec     <- if ex then do  info v $ "Found polytable package at: " ++ p
-                                                 x  <- readFile p
-                                                 let vp = do  vs <- matchRegex (mkRegexWithOpts " v(.*) .polytable. package" True True) x
-                                                              listToMaybe [ r | v <- vs, (r,"") <- readP_to_S parseVersion v ]
-                                                 let (sv,nec) = case vp of
-                                                                  Just n  -> (showVersion n,versionBranch n < minPolytableVersion)
-                                                                  Nothing -> ("unknown",True)
-                                                 info v $ "Package polytable version: " ++ sv
-                                                 return nec
-                                        else return True
-                       info v $ "Package polytable installation necessary: " ++ showYesNo nec
-                       when nec $ info v $ "Using texmf tree at: " ++ b
-                       return (if nec then Just b else Nothing)
-                   else
-                   do  warn v "No texmf tree found, polytable package cannot be installed"
-                       return Nothing
+        tmft    <- do let kpseExists = lookupProgram (simpleProgram "kpsewhich") (withPrograms lbi)
+                      case kpseExists of
+                        Nothing -> return Nothing
+                        Just _  -> do  (_,b,_) <- runKpseWhichVar "TEXMFLOCAL"
+                                       b       <- return . stripQuotes . stripNewlines $ b
+                                       ex      <- return (not . all isSpace $ b) -- or check if directory exists?
+                                       b       <- if ex then return b
+                                                        else do  (_,b,_) <- (runKpseWhichVar "TEXMFMAIN")
+                                                                 return . stripQuotes . stripNewlines $ b
+                                       if not . all isSpace $ b -- or check if directory exists?
+                                         then return (Just b)
+                                         else return Nothing
+        i       <- case tmft of
+                     Just b  -> do  (_,p,_) <- runKpseWhich "polytable.sty"
+                                    p       <- return . stripNewlines $ p
+                                    ex      <- doesFileExist p
+                                    nec     <- if ex then do  info v $ "Found polytable package at: " ++ p
+                                                              x  <- readFile p
+                                                              let vp = do  vs <- matchRegex (mkRegexWithOpts " v(.*) .polytable. package" True True) x
+                                                                           listToMaybe [ r | v <- vs, (r,"") <- readP_to_S parseVersion v ]
+                                                              let (sv,nec) = case vp of
+                                                                               Just n  -> (showVersion n,versionBranch n < minPolytableVersion)
+                                                                               Nothing -> ("unknown",True)
+                                                              info v $ "Package polytable version: " ++ sv
+                                                              return nec
+                                                     else return True
+                                    info v $ "Package polytable installation necessary: " ++ showYesNo nec
+                                    when nec $ info v $ "Using texmf tree at: " ++ b
+                                    return (if nec then Just b else Nothing)
+                     Nothing -> do  warn v "No texmf tree found, polytable package cannot be installed"
+                                    return Nothing
         -- check documentation
         ex      <- doesFileExist $ "doc" `joinFileName` "Guide2.dontbuild"
         r       <- if ex then do info v "Documentation will not be rebuilt unless you remove the file \"doc/Guide2.dontbuild\""
diff --git a/Testsuite/Makefile b/Testsuite/Makefile
--- a/Testsuite/Makefile
+++ b/Testsuite/Makefile
@@ -1,247 +1,44 @@
 
-include config.mk
-
-main            := src/Main.lhs
-psources        := $(main) src/TeXCommands.lhs src/TeXParser.lhs \
-		   src/Typewriter.lhs src/Math.lhs src/MathPoly.lhs \
-                   src/MathCommon.lhs src/NewCode.lhs \
-		   src/Directives.lhs src/HsLexer.lhs src/FileNameUtils.lhs \
-		   src/Parser.lhs src/FiniteMap.lhs src/Auxiliaries.lhs \
-		   src/StateT.lhs src/Document.lhs src/Verbatim.lhs src/Value.lhs \
-		   src/License.lhs src/State.lhs
-sources         := $(psources) src/Version.lhs
-snipssrc        := sorts.snip id.snip cata.snip spec.snip
-snips	        := sorts.tt sorts.math id.math cata.math spec.math
-objects         := $(sources:.lhs=.o)
-sections       	:= $(sources:.lhs=.tex)
-
-MKINSTDIR       := ./mkinstalldirs
-
-###
-### lhs dependencies (from %include lines)
-###
-
-ifdef SORT
-ifdef UNIQ
-
-MKLHSDEPEND = $(GREP) "^%include " $< \
-               | $(SED) -e 's,^%include ,$*.tex : ,' \
-               | $(SORT) | $(UNIQ) > $*.ld
-
-MKFMTDEPEND = $(GREP) "^%include " $< \
-               | $(SED) -e 's,^%include ,$*.fmt : ,' \
-               | $(SORT) | $(UNIQ) > $*.ld
-
-endif
-endif
-
-###
-### dependency postprocessing
-###
-
-DEPPOSTPROC = $(SED) -e 's/\#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \
-	         -e '/^$$/ d' -e 's/$$/ :/'
-
-###
-### default targets
-###
-
-.PHONY : default xdvi gv print install backup clean all depend bin doc srcdist
-
-all : default
-
-default : bin doc
-bin : lhs2TeX lhs2TeX.fmt lhs2TeX.sty
-
--include $(sources:%.lhs=%.d)
-
-# I don't understand this ... (ks)
-#
-# %.hi : %.o
-# 	@if [ ! -f $@ ] ; then \
-#	echo $(RM) $< ; \
-#	$(RM) $< ; \
-#	set +e ; \
-#	echo $(MAKE) $(notdir $<) ; \
-#	$(MAKE) $(notdir $<) ; \
-#	if [ $$? -ne 0 ] ; then \
-#	exit 1; \
-#	fi ; \
-#	fi
-
-ifdef MKLHSDEPEND
-
-%.ld : %.lhs
-	$(MKLHSDEPEND); \
-	$(CP) $*.ld $*.ldd; \
-	$(DEPPOSTPROC) < $*.ldd >> $*.ld; \
-	$(RM) -f $*.ldd
-
-%.ld : %.fmt
-	$(MKFMTDEPEND); \
-	$(CP) $*.ld $*.ldd; \
-	$(DEPPOSTPROC) < $*.ldd >> $*.ld; \
-	$(RM) -f $*.ldd
-
--include $(sources:%.lhs=%.ld)
-
-endif
-
-%.tex : %.lhs lhs2TeX Lhs2TeX.fmt lhs2TeX.fmt
-#	lhs2TeX -verb -iLhs2TeX.fmt $< > $@
-	./lhs2TeX --math --align 33 -iLhs2TeX.fmt $< > $@
-
-%.tt : %.snip lhs2TeX lhs2TeX.fmt
-	./lhs2TeX --tt -lmeta=True -ilhs2TeX.fmt $< > $@
-
-%.math : %.snip lhs2TeX lhs2TeX.fmt
-	./lhs2TeX --math --align 33 -lmeta=True -ilhs2TeX.fmt $< > $@
-
-%.tex : %.lit lhs2TeX
-	./lhs2TeX --verb -ilhs2TeX.fmt $< > $@
-
-
-lhs2TeX.sty: lhs2TeX.sty.lit lhs2TeX
-	./lhs2TeX --code lhs2TeX.sty.lit > lhs2TeX.sty
-lhs2TeX.fmt: lhs2TeX.fmt.lit lhs2TeX
-	./lhs2TeX --code lhs2TeX.fmt.lit > lhs2TeX.fmt
-
-lhs2TeX : $(sources)
-	$(GHC) $(GHCFLAGS) -isrc --make -o lhs2TeX $(main)
-
-doc : bin
-	cd doc; $(MAKE)
-#	cd Guide; $(MAKE) Guide.pdf
-
-INSTALL : lhs2TeX INSTALL0 INSTALL1
-	cp INSTALL0 $@
-	./lhs2TeX --searchpath >> $@
-	cat INSTALL1 >> $@
-
-depend:
-	$(GHC) -M -optdep-f -optdeplhs2TeX.d $(GHCFLAGS) $(sources)
-	$(RM) -f lhs2TeX.d.bak
+include ../config.mk
 
-lhs2TeX-includes : lhs2TeX.sty $(sections) $(snips) lhs2TeX.sty.tex lhs2TeX.fmt.tex Makefile.tex
+#-----------------------------------------------------------------------------
+# directories and files
 
-Lhs2TeX.dvi : lhs2TeX-includes
-Lhs2TeX.pdf : lhs2TeX-includes
+snips		:= $(wildcard *.snip)
+texs       	:= $(foreach file, $(snips:.snip=.tex), $(file))
 
-xdvi : Lhs2TeX.dvi
-	$(XDVI) -s 3 Lhs2TeX.dvi &
+LHS2TEX = ../lhs2TeX
 
-gv : Lhs2TeX.ps
-	$(GV) Lhs2TeX.ps &
+#-----------------------------------------------------------------------------
+# pattern rules
 
-print : Lhs2TeX.dvi
-	$(DVIPS) -D600 -f Lhs2TeX.dvi | lpr -Pa -Zl
+%.tex : %.snip
+#	lhs2TeX -verb -i../lhs2TeX.fmt -l'meta = True' $< > $@
+	$(LHS2TEX) -v --math --align=33 -smeta -i../lhs2TeX.fmt $< > $@
 
-install : bin doc
-	$(MKINSTDIR) $(DESTDIR)$(bindir)
-	$(INSTALL) -m 755 lhs2TeX $(DESTDIR)$(bindir)
-	$(MKINSTDIR) $(DESTDIR)$(stydir)
-	$(INSTALL) -m 644 lhs2TeX.sty lhs2TeX.fmt $(DESTDIR)$(stydir)
-	$(INSTALL) -m 644 Library/*.fmt $(DESTDIR)$(stydir)
-	$(MKINSTDIR) $(DESTDIR)$(docdir)
-	$(INSTALL) -m 644 doc/Guide2.pdf $(DESTDIR)$(docdir)
-	$(MKINSTDIR) $(DESTDIR)$(mandir)/man1
-	$(INSTALL) -m 644 lhs2TeX.1 $(DESTDIR)$(mandir)/man1
-ifeq ($(INSTALL_POLYTABLE),yes)
-# install polytable package
-	$(MKINSTDIR) $(DESTDIR)$(polydir)
-	$(INSTALL) -m 644 polytable/*.sty $(DESTDIR)$(polydir)
-endif
-	# $(MKINSTDIR) $(DESTDIR)$(texdir)
-	# $(INSTALL) -m 644 Library/*.sty $(DESTDIR)$(texdir)
-ifndef DESTDIR
-	$(MKTEXLSR)
-else
-	echo "Please update the TeX filename database."
-endif
+%.tex : %.lhs
+#	lhs2TeX -verb -i../lhs2TeX.fmt -l'meta = True' $< > $@
+	$(LHS2TEX) -v --math --align=33 -smeta $< > $@
 
-srcdist : INSTALL doc
-	if test -d $(DISTDIR); then $(RM) -rf $(DISTDIR); fi
-	$(MKINSTDIR) $(DISTDIR)
-	$(MKINSTDIR) $(DISTDIR)/src
-	$(MKINSTDIR) $(DISTDIR)/doc
-	$(MKINSTDIR) $(DISTDIR)/polytable
-	$(MKINSTDIR) $(DISTDIR)/Testsuite
-	$(MKINSTDIR) $(DISTDIR)/Examples
-	$(MKINSTDIR) $(DISTDIR)/Library
-	$(INSTALL) -m 644 $(psources) src/Version.lhs.in $(DISTDIR)/src
-	$(INSTALL) -m 644 $(snipssrc) $(DISTDIR)
-	$(INSTALL) -m 644 Setup.hs lhs2tex.cabal $(DISTDIR)
-	$(INSTALL) -m 644 lhs2TeX.fmt.lit lhs2TeX.sty.lit $(DISTDIR)
-	$(INSTALL) -m 644 Makefile common.mk config.mk.in $(DISTDIR)
-	$(INSTALL) -m 644 lhs2TeX.1.in $(DISTDIR)
-	$(INSTALL) -m 755 configure mkinstalldirs install-sh $(DISTDIR)
-	$(INSTALL) -m 644 TODO AUTHORS LICENSE CHANGELOG $(DISTDIR)
-	cat INSTALL | sed -e "s/@ProgramVersion@/$(PACKAGE_VERSION)/" \
-		> $(DISTDIR)/INSTALL
-	chmod 644 $(DISTDIR)/INSTALL
-	cd doc; $(MAKE) srcdist
-	$(INSTALL) -m 644 polytable/*.{sty,pdf} $(DISTDIR)/polytable
-	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Makefile $(DISTDIR)/Testsuite
-	$(INSTALL) -m 644 Examples/*.lhs $(DISTDIR)/Examples
-	$(INSTALL) -m 755 Examples/lhs2TeXpre $(DISTDIR)/Examples
-	$(INSTALL) -m 644 Library/*.fmt $(DISTDIR)/Library
-	tar cvzf $(DISTDIR).tar.gz $(DISTDIR)
-	chmod 644 $(DISTDIR).tar.gz
+%.ps : %.dvi
+	$(DVIPS) -D600 -o $@ $<
 
-ifdef DISTTYPE
+#-----------------------------------------------------------------------------
 
-bindist: lhs2TeX lhs2TeX.fmt lhs2TeX.sty doc
-	if test -d $(DISTDIR); then $(RM) -rf $(DISTDIR); fi
-	$(MKINSTDIR) $(DISTDIR)
-	$(MKINSTDIR) $(DISTDIR)/doc
-	$(MKINSTDIR) $(DISTDIR)/polytable
-	$(MKINSTDIR) $(DISTDIR)/Testsuite
-	$(MKINSTDIR) $(DISTDIR)/Examples
-	$(MKINSTDIR) $(DISTDIR)/Library
-	$(INSTALL) -m 755 lhs2TeX $(DISTDIR)
-	$(INSTALL) -m 644 lhs2TeX.fmt lhs2TeX.sty $(DISTDIR)
-	$(INSTALL) -m 644 $(psources) Version.lhs.in $(snipssrc) $(DISTDIR)
-	$(INSTALL) -m 644 lhs2TeX.fmt.lit lhs2TeX.sty.lit $(DISTDIR)
-	$(INSTALL) -m 644 Makefile common.mk config.mk.in $(DISTDIR)
-	$(INSTALL) -m 644 lhs2TeX.1.in $(DISTDIR)
-	$(INSTALL) -m 755 configure mkinstalldirs install-sh $(DISTDIR)
-	$(INSTALL) -m 644 TODO AUTHORS LICENSE CHANGELOG $(DISTDIR)
-	cat INSTALL | sed -e "s/@ProgramVersion@/$(PACKAGE_VERSION)/" \
-		> $(DISTDIR)/INSTALL
-	chmod 644 $(DISTDIR)/INSTALL
-	cd doc; $(MAKE) srcdist
-	$(INSTALL) -m 644 polytable/*.{sty,pdf} $(DISTDIR)/polytable
-	$(INSTALL) -m 644 Testsuite/*.{lhs,snip} Makefile $(DISTDIR)/Testsuite
-	$(INSTALL) -m 644 Examples/*.lhs $(DISTDIR)/Examples
-	$(INSTALL) -m 755 Examples/lhs2TeXpre $(DISTDIR)/Examples
-	$(INSTALL) -m 644 Library/*.fmt $(DISTDIR)/Library
-	tar cvjf $(DISTDIR)-$(DISTTYPE).tar.bz2 $(DISTDIR)
-	chmod 644 $(DISTDIR)-$(DISTTYPE).tar.bz2
+.PHONY: show view print clean
 
-else
+Test.dvi : $(texs)
 
-bindist:
-	@echo "You must define DISTTYPE."
+show : Test.dvi
+	$(XDVI) -s 3 Test.dvi &
 
-endif
+view : Test.ps
+	xe ghostview Test.ps &
 
-backup:
-	cd ..; \
-	$(RM) -f Literate.tar Literate.tar.gz; \
-	tar -cf Literate.tar Literate; \
-	gzip Literate.tar; \
-	chmod a+r Literate.tar.gz
+print : Test.dvi
+	$(DVIPS) -D600 -f Test.dvi | lpr -Pa -Zl
 
 clean :
-#	clean
-	$(RM) -f lhs2TeX $(sections) $(snips) $(objects) *.hi *.dvi *.ps
-	-$(RM) -f *.d *.dd *.ld *.ldd
-	$(RM) -f lhs2TeX.sty lhs2TeX.fmt
-	$(RM) -f Lhs2TeX.tex lhs2TeX.sty.tex lhs2TeX.fmt.tex Makefile.tex 
-	cd doc; $(MAKE) clean
-
-# all:
-# 	$(MAKE) install
-# 	$(MAKE) Lhs2TeX.dvi
+	rm -f Test.tex $(texs) *.dvi *.ps
 
-include common.mk
+include ../common.mk
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.18.1.
+# Generated by GNU Autoconf 2.69 for lhs2tex 1.19.
 #
 #
 # 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.18.1'
-PACKAGE_STRING='lhs2tex 1.18.1'
+PACKAGE_VERSION='1.19'
+PACKAGE_STRING='lhs2tex 1.19'
 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.18.1 to adapt to many kinds of systems.
+\`configure' configures lhs2tex 1.19 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.18.1:";;
+     short | recursive ) echo "Configuration of lhs2tex 1.19:";;
    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.18.1
+lhs2tex configure 1.19
 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.18.1, which was
+It was created by lhs2tex $as_me 1.19, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -1708,10 +1708,10 @@
 
 
 
-VERSION="1.18.1"
-SHORTVERSION="1.18.1"
-NUMVERSION=118
-PRE=1
+VERSION="1.19"
+SHORTVERSION="1.19"
+NUMVERSION=119
+PRE=2
 
 
 
@@ -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.18.1, which was
+This file was extended by lhs2tex $as_me 1.19, 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.18.1
+lhs2tex config.status 1.19
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/doc/Guide2.lhs b/doc/Guide2.lhs
--- a/doc/Guide2.lhs
+++ b/doc/Guide2.lhs
@@ -31,7 +31,7 @@
 
 \newcommand*{\PDF}{{\smaller{PDF}}\xspace}
 \newcommand*{\CTAN}{{\smaller{CTAN}}\xspace}
-%format lhs2TeX = "\textrm{lhs}\textsf{2}\TeX"
+%format lhs2TeX = "\text{\textrm{lhs}\textsf{2}\TeX}"
 \setdefaultitem{\textbf{--}}{}{}{}
 
 %let doc = True
@@ -1608,8 +1608,8 @@
 
 The following input shows an example of how to call @ghci@:
 \input{InteractiveGhciIn}%
-The option @-fglasgow-exts@ is necessary to make @ghci@
-accept the @forall@ keyword (it only serves as an example
+The options are necessary to make @ghci@
+accept and print the @forall@ keyword (it only serves as an example
 here how to pass options to the interpreter). 
 The output will look similar to this:
 \begin{colorsurround}
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/InteractiveGhci.lhs b/doc/InteractiveGhci.lhs
--- a/doc/InteractiveGhci.lhs
+++ b/doc/InteractiveGhci.lhs
@@ -7,7 +7,7 @@
 %endif
 %format . = "."
 %format forall a = "\forall" a
-%options ghci -fglasgow-exts
+%options ghci -XRankNTypes -fprint-explicit-foralls
 
 > fix    ::  forall a. (a -> a) -> a
 > fix f  =   f (fix f)
diff --git a/doc/InteractiveGhciIn.lhs b/doc/InteractiveGhciIn.lhs
--- a/doc/InteractiveGhciIn.lhs
+++ b/doc/InteractiveGhciIn.lhs
@@ -10,7 +10,7 @@
 %format forall a = "\forall" a
 
 \begin{code}
-%options ghci -fglasgow-exts
+%options ghci -XRankNTypes -fprint-explicit-foralls
 
 > fix    ::  forall a. (a -> a) -> a
 > fix f  =   f (fix f)
diff --git a/doc/RawSearchPath.lhs b/doc/RawSearchPath.lhs
--- a/doc/RawSearchPath.lhs
+++ b/doc/RawSearchPath.lhs
@@ -1,17 +1,17 @@
 \begin{code}
 .
-{HOME}/lhs2tex-1.18.1//
+{HOME}/lhs2tex-1.19//
 {HOME}/lhs2tex//
 {HOME}/lhs2TeX//
-{HOME}/.lhs2tex-1.18.1//
+{HOME}/.lhs2tex-1.19//
 {HOME}/.lhs2tex//
 {HOME}/.lhs2TeX//
 {LHS2TEX}//
-/usr/local/share/lhs2tex-1.18.1//
-/usr/local/share/lhs2tex-1.18.1//
-/usr/local/lib/lhs2tex-1.18.1//
-/usr/share/lhs2tex-1.18.1//
-/usr/lib/lhs2tex-1.18.1//
+/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//
 /usr/local/lib/lhs2tex//
 /usr/share/lhs2tex//
diff --git a/lhs2TeX.1.in b/lhs2TeX.1.in
--- a/lhs2TeX.1.in
+++ b/lhs2TeX.1.in
@@ -1,4 +1,4 @@
-.TH LHS2TEX "1" "February 2008" "lhs2TeX" "User Commands"
+.TH LHS2TEX "1" "April 2015" "lhs2TeX" "User Commands"
 .SH NAME
 lhs2TeX \- a literate Haskell to (La)TeX code translator
 
@@ -219,10 +219,15 @@
 .BR lhs2TeX .
 
 .SH SEE ALSO
-.IR http://www.cs.uu.nl/~andres/lhs2tex ,
+.IR https://github.com/kosmikus/lhs2tex ,
 the 
 .B lhs2TeX 
-homepage
+development repository and issue tracker
+.br
+.IR https://hackage.haskell.org/package/lhs2tex ,
+the
+.B lhs2TeX
+Hackage page
 .br
 .IR Guide2.pdf ,
 the manual
diff --git a/lhs2tex.cabal b/lhs2tex.cabal
--- a/lhs2tex.cabal
+++ b/lhs2tex.cabal
@@ -1,6 +1,6 @@
 cabal-version:  >=1.10
 name:           lhs2tex
-version:        1.18.1
+version:        1.19
 license:        GPL
 license-file:   LICENSE
 author:         Ralf Hinze <ralf.hinze@comlab.ox.ac.uk>, Andres Loeh <lhs2tex@andres-loeh.de>
@@ -11,6 +11,38 @@
 description:    Preprocessor for typesetting Haskell sources with LaTeX
 category:       Development, Language
 build-type:     Custom
+extra-source-files:     AUTHORS
+                        CHANGELOG
+                        INSTALL
+                        TODO
+                        doc/*.lhs
+                        doc/*.fmt
+                        doc/Guide2.lhs
+                        doc/Guide2.pdf
+                        doc/Makefile
+                        doc/lhs2TeXpre
+                        Examples/*.lhs
+                        Examples/lhs2TeXpre
+                        Library/*.fmt
+                        polytable/*.sty
+                        polytable/*.pdf
+                        src/Version.lhs.in
+                        Testsuite/*.snip
+                        Testsuite/*.lhs
+                        Testsuite/Makefile
+                        sorts.snip
+                        id.snip
+                        cata.snip
+                        spec.snip
+                        lhs2TeX.fmt.lit
+                        lhs2TeX.sty.lit
+                        lhs2TeX.1.in
+                        Makefile
+                        common.mk
+                        config.mk.in
+                        configure
+                        mkinstalldirs
+                        install-sh
 
 executable lhs2TeX
   main-is:              Main.lhs
diff --git a/polytable/polytable.sty b/polytable/polytable.sty
--- a/polytable/polytable.sty
+++ b/polytable/polytable.sty
@@ -9,14 +9,18 @@
 
 \NeedsTeXFormat{LaTeX2e}
 \ProvidesPackage{polytable}%
-   [2009/11/01 v0.8.4 `polytable' package (Andres Loeh)]
+   [2013/07/18 v0.8.5 `polytable' package (Andres Loeh)]
 \let\PT@original@And\And
+\let\PT@original@Not\Not
 \RequirePackage{lazylist}
 \let\PT@And\And
+\let\PT@Not\Not
 \def\PT@prelazylist
-  {\let\And\PT@And}
+  {\let\And\PT@And
+   \let\Not\PT@Not}
 \def\PT@postlazylist
-  {\let\And\PT@original@And}
+  {\let\And\PT@original@And
+   \let\Not\PT@original@Not}
 \PT@postlazylist
 \RequirePackage{array}
 \DeclareOption{debug} {\AtEndOfPackage\PT@debug}
diff --git a/src/HsLexer.lhs b/src/HsLexer.lhs
--- a/src/HsLexer.lhs
+++ b/src/HsLexer.lhs
@@ -124,7 +124,7 @@
 >                                     return (Nested t, v)
 > lex' lang (c : s)
 >     | isSpace c               =  let (t, u) = span isSpace s in return (Space (c : t), u)
->     | isSpecial c             =  Just (Special c, s)
+>     | isSpecial lang c        =  Just (Special c, s)
 >     | isUpper c               =  let (t, u) = span (isIdChar lang) s in return (Conid (c : t), u)
 >     | isLower c || c == '_'   =  let (t, u) = span (isIdChar lang) s in return (classify (c : t), u)
 >     | c == ':'                =  let (t, u) = span (isSymbol lang) s in return (consymid lang (c : t), u)
@@ -204,15 +204,16 @@
 > lexLitStr ('\\' : c : s)      =  '\\' <| c <| lexLitStr s
 > lexLitStr (c : s)             =  c <| lexLitStr s
 
-> isSpecial                     :: Char -> Bool
+> isSpecial                     :: Lang -> Char -> Bool
 > isIdChar, isSymbol            :: Lang -> Char -> Bool
-> isSpecial c                   =  c `elem` ",;()[]{}`"
-> isSymbol Haskell c            =  not (isSpecial c) && notElem c "'\"" &&
+> isSpecial Haskell c           =  c `elem` ",;()[]{}`"
+> isSpecial Agda c              =  c `elem` ";(){}"
+> isSymbol Haskell c            =  not (isSpecial Haskell c) && notElem c "'\"" &&
 >                                  (c `elem` "!@#$%&*+./<=>?\\^|:-~" ||
 >                                   Data.Char.isSymbol c || Data.Char.isPunctuation c)
 > isSymbol Agda c               =  isIdChar Agda c
 > isIdChar Haskell c            =  isAlphaNum c || c `elem` "_'"
-> isIdChar Agda c               =  not (isSpecial c || isSpace c)
+> isIdChar Agda c               =  not (isSpecial Agda c || isSpace c)
 
 > match                         :: String -> String -> Maybe String
 > match p s
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-2012 Ralf Hinze, Andres Loeh\n\n\
+>     "lhs2TeX " ++ version ++ ", Copyright (C) 1997-2015 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\
