aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2016-02-12 10:04:22 +0100
committerBen Gamari <ben@smart-cactus.org>2016-02-12 10:04:22 +0100
commite18d166b39cdc8c6672b626b4b840c1c383a9685 (patch)
tree43aa1526b9980fdf9f6fc8cbd5a6027b9e82970c
parent57a5dcfd3d2a7e01229a2c3a79b1f99cd95d5de1 (diff)
parent6a6029f1fc7b2cfeea8e231c8806d293d6644004 (diff)
Merge remote-tracking branch 'origin/master' into ghc-head
-rw-r--r--doc/.gitignore1
-rw-r--r--doc/Makefile10
-rw-r--r--doc/README.md23
-rw-r--r--doc/aclocal.m4174
-rw-r--r--doc/conf.py69
-rw-r--r--doc/config.mk.in15
-rw-r--r--doc/configure.ac12
-rw-r--r--doc/docbook-xml.mk130
-rw-r--r--doc/fptools.css36
-rw-r--r--doc/ghc.mk9
-rw-r--r--doc/haddock.xml2329
-rw-r--r--doc/index.rst21
-rw-r--r--doc/intro.rst164
-rw-r--r--doc/invoking.rst458
-rw-r--r--doc/markup.rst887
-rw-r--r--haddock-api/haddock-api.cabal8
-rw-r--r--haddock-api/resources/html/Ocean.std-theme/ocean.css13
-rw-r--r--haddock-api/src/Haddock.hs13
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml.hs31
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Layout.hs11
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Names.hs6
-rw-r--r--haddock-api/src/Haddock/Backends/Xhtml/Utils.hs2
-rw-r--r--haddock-test/haddock-test.cabal2
-rw-r--r--haddock-test/src/Test/Haddock.hs40
-rw-r--r--haddock-test/src/Test/Haddock/Config.hs6
-rw-r--r--haddock.cabal2
-rw-r--r--hoogle-test/Main.hs3
-rwxr-xr-xhtml-test/Main.hs6
-rw-r--r--html-test/ref/A.html77
-rw-r--r--html-test/ref/B.html71
-rw-r--r--html-test/ref/Bold.html35
-rw-r--r--html-test/ref/Bug1.html39
-rw-r--r--html-test/ref/Bug195.html53
-rw-r--r--html-test/ref/Bug2.html31
-rw-r--r--html-test/ref/Bug201.html41
-rw-r--r--html-test/ref/Bug253.html35
-rw-r--r--html-test/ref/Bug26.html77
-rw-r--r--html-test/ref/Bug294.html95
-rw-r--r--html-test/ref/Bug298.html73
-rw-r--r--html-test/ref/Bug3.html35
-rw-r--r--html-test/ref/Bug308.html55
-rw-r--r--html-test/ref/Bug308CrossModule.html41
-rw-r--r--html-test/ref/Bug310.html35
-rw-r--r--html-test/ref/Bug313.html43
-rw-r--r--html-test/ref/Bug335.html41
-rw-r--r--html-test/ref/Bug387.html51
-rw-r--r--html-test/ref/Bug4.html35
-rw-r--r--html-test/ref/Bug6.html131
-rw-r--r--html-test/ref/Bug7.html61
-rw-r--r--html-test/ref/Bug8.html79
-rw-r--r--html-test/ref/Bug85.html69
-rw-r--r--html-test/ref/BugDeprecated.html85
-rw-r--r--html-test/ref/BugExportHeadings.html97
-rw-r--r--html-test/ref/Bugs.html37
-rw-r--r--html-test/ref/DeprecatedClass.html77
-rw-r--r--html-test/ref/DeprecatedData.html53
-rw-r--r--html-test/ref/DeprecatedFunction.html47
-rw-r--r--html-test/ref/DeprecatedFunction2.html35
-rw-r--r--html-test/ref/DeprecatedFunction3.html35
-rw-r--r--html-test/ref/DeprecatedModule.html35
-rw-r--r--html-test/ref/DeprecatedModule2.html31
-rw-r--r--html-test/ref/DeprecatedNewtype.html53
-rw-r--r--html-test/ref/DeprecatedReExport.html43
-rw-r--r--html-test/ref/DeprecatedRecord.html53
-rw-r--r--html-test/ref/DeprecatedTypeFamily.html61
-rw-r--r--html-test/ref/DeprecatedTypeSynonym.html45
-rw-r--r--html-test/ref/Examples.html41
-rw-r--r--html-test/ref/Extensions.html33
-rw-r--r--html-test/ref/FunArgs.html65
-rw-r--r--html-test/ref/GADTRecords.html109
-rw-r--r--html-test/ref/Hash.html191
-rw-r--r--html-test/ref/HiddenInstances.html125
-rw-r--r--html-test/ref/HiddenInstancesB.html51
-rw-r--r--html-test/ref/Hyperlinks.html39
-rw-r--r--html-test/ref/IgnoreExports.html45
-rw-r--r--html-test/ref/ImplicitParams.html63
-rw-r--r--html-test/ref/Instances.html1938
-rw-r--r--html-test/ref/Math.html33
-rw-r--r--html-test/ref/Minimal.html213
-rw-r--r--html-test/ref/ModuleWithWarning.html35
-rw-r--r--html-test/ref/NamedDoc.html25
-rw-r--r--html-test/ref/Nesting.html89
-rw-r--r--html-test/ref/NoLayout.html37
-rw-r--r--html-test/ref/NonGreedy.html37
-rw-r--r--html-test/ref/Operators.html207
-rw-r--r--html-test/ref/OrphanInstances.html41
-rw-r--r--html-test/ref/OrphanInstancesClass.html37
-rw-r--r--html-test/ref/OrphanInstancesType.html35
-rw-r--r--html-test/ref/PatternSyns.html139
-rw-r--r--html-test/ref/PromotedTypes.html117
-rw-r--r--html-test/ref/Properties.html41
-rw-r--r--html-test/ref/PruneWithWarning.html25
-rw-r--r--html-test/ref/QuasiExpr.html167
-rw-r--r--html-test/ref/QuasiQuote.html31
-rw-r--r--html-test/ref/SpuriousSuperclassConstraints.html117
-rw-r--r--html-test/ref/TH.html31
-rw-r--r--html-test/ref/TH2.html31
-rw-r--r--html-test/ref/Test.html977
-rw-r--r--html-test/ref/Threaded.html35
-rw-r--r--html-test/ref/Threaded_TH.html90
-rw-r--r--html-test/ref/Ticket112.html35
-rw-r--r--html-test/ref/Ticket61.html43
-rw-r--r--html-test/ref/Ticket75.html51
-rw-r--r--html-test/ref/TitledPicture.html49
-rw-r--r--html-test/ref/TypeFamilies.html787
-rw-r--r--html-test/ref/TypeFamilies2.html109
-rw-r--r--html-test/ref/TypeOperators.html107
-rw-r--r--html-test/ref/Unicode.html35
-rw-r--r--html-test/ref/Visible.html33
-rw-r--r--html-test/ref/ocean.css15
-rw-r--r--hypsrc-test/Main.hs6
-rw-r--r--hypsrc-test/ref/src/Classes.html161
-rw-r--r--hypsrc-test/ref/src/Constructors.html77
-rw-r--r--hypsrc-test/ref/src/Identifiers.html127
-rw-r--r--hypsrc-test/ref/src/Literals.html13
-rw-r--r--hypsrc-test/ref/src/Operators.html129
-rw-r--r--hypsrc-test/ref/src/Polymorphism.html2036
-rw-r--r--hypsrc-test/ref/src/Records.html185
-rw-r--r--hypsrc-test/ref/src/Types.html19
-rw-r--r--hypsrc-test/src/Polymorphism.hs8
-rwxr-xr-xlatex-test/Main.hs3
121 files changed, 9721 insertions, 6168 deletions
diff --git a/doc/.gitignore b/doc/.gitignore
new file mode 100644
index 00000000..1bf230d1
--- /dev/null
+++ b/doc/.gitignore
@@ -0,0 +1 @@
+.build-html \ No newline at end of file
diff --git a/doc/Makefile b/doc/Makefile
index 5f88b708..f4356f43 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,6 +1,8 @@
-include config.mk
+SPHINX_BUILD ?= sphinx-build
-XML_DOC = haddock
-INSTALL_XML_DOC = haddock
+all : html
-include docbook-xml.mk
+.PHONY : html
+
+html :
+ $(SPHINX_BUILD) -b html . .build-html
diff --git a/doc/README.md b/doc/README.md
index cf1fc31b..947d7f93 100644
--- a/doc/README.md
+++ b/doc/README.md
@@ -1,25 +1,10 @@
# Haddock documentation
-The documentation is in DocBook XML format. You need some tools to
-process it: at least xsltproc, and the DocBook XML DTD and XSL
-stylesheets. There's a configure script to detect the right way to
-process the documentation on your system, and a Makefile to actually
-do the processing (so, on Windows, you'll need Cygwin or MSys in
-addition to the DocBook XML tools). To build the HTML documentation:
+The documentation is in ReStructuredText format. You need
+[Sphinx](http://www.sphinx-doc.org/) to process it. To build the HTML
+documentation,
- $ autoconf
- $ ./configure
$ make html
-which leaves the HTML documentation in a haddock/ subdirectory.
+which leaves the HTML documentation the `.build-html/` subdirectory.
-Printable documentation can also be produced, eg.:
-
- $ make pdf
-
-or
-
- $ make ps
-
-Generating the printed formats requires more tools (fop or xmltex) and
-tends to be a bit harder.
diff --git a/doc/aclocal.m4 b/doc/aclocal.m4
deleted file mode 100644
index 97ffcb76..00000000
--- a/doc/aclocal.m4
+++ /dev/null
@@ -1,174 +0,0 @@
-# FP_GEN_DOCBOOK_XML
-# ------------------
-# Generates a DocBook XML V4.2 document in conftest.xml.
-AC_DEFUN([FP_GEN_DOCBOOK_XML],
-[rm -f conftest.xml
-cat > conftest.xml << EOF
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
-<book id="test">
- <title>A DocBook Test Document</title>
- <chapter id="id-one">
- <title>A Chapter Title</title>
- <para>This is a paragraph, referencing <xref linkend="id-two"/>.</para>
- </chapter>
- <chapter id="id-two">
- <title>Another Chapter Title</title>
- <para>This is another paragraph, referencing <xref linkend="id-one"/>.</para>
- </chapter>
-</book>
-EOF
-]) # FP_GEN_DOCBOOK_XML
-
-
-# FP_PROG_XSLTPROC
-# ----------------
-# Sets the output variable XsltprocCmd to the full path of the XSLT processor
-# xsltproc. XsltprocCmd is empty if xsltproc could not be found.
-AC_DEFUN([FP_PROG_XSLTPROC],
-[AC_PATH_PROG([XsltprocCmd], [xsltproc])
-if test -z "$XsltprocCmd"; then
- AC_MSG_WARN([cannot find xsltproc in your PATH, you will not be able to build the documentation])
-fi
-])# FP_PROG_XSLTPROC
-
-
-# FP_DIR_DOCBOOK_XSL(XSL-DIRS)
-# ----------------------------
-# Check which of the directories XSL-DIRS contains DocBook XSL stylesheets. The
-# output variable DIR_DOCBOOK_XSL will contain the first usable directory or
-# will be empty if none could be found.
-AC_DEFUN([FP_DIR_DOCBOOK_XSL],
-[AC_REQUIRE([FP_PROG_XSLTPROC])dnl
-if test -n "$XsltprocCmd"; then
- AC_CACHE_CHECK([for DocBook XSL stylesheet directory], fp_cv_dir_docbook_xsl,
- [FP_GEN_DOCBOOK_XML
- fp_cv_dir_docbook_xsl=no
- for fp_var in $1; do
- if $XsltprocCmd ${fp_var}/html/docbook.xsl conftest.xml > /dev/null 2>&1; then
- fp_cv_dir_docbook_xsl=$fp_var
- break
- fi
- done
- rm -rf conftest*])
-fi
-if test x"$fp_cv_dir_docbook_xsl" = xno; then
- AC_MSG_WARN([cannot find DocBook XSL stylesheets, you will not be able to build the documentation])
- DIR_DOCBOOK_XSL=
-else
- DIR_DOCBOOK_XSL=$fp_cv_dir_docbook_xsl
-fi
-AC_SUBST([DIR_DOCBOOK_XSL])
-])# FP_DIR_DOCBOOK_XSL
-
-
-# FP_PROG_XMLLINT
-# ----------------
-# Sets the output variable XmllintCmd to the full path of the XSLT processor
-# xmllint. XmllintCmd is empty if xmllint could not be found.
-AC_DEFUN([FP_PROG_XMLLINT],
-[AC_PATH_PROG([XmllintCmd], [xmllint])
-if test -z "$XmllintCmd"; then
- AC_MSG_WARN([cannot find xmllint in your PATH, you will not be able to validate your documentation])
-fi
-])# FP_PROG_XMLLINT
-
-
-# FP_CHECK_DOCBOOK_DTD
-# --------------------
-AC_DEFUN([FP_CHECK_DOCBOOK_DTD],
-[AC_REQUIRE([FP_PROG_XMLLINT])dnl
-if test -n "$XmllintCmd"; then
- AC_MSG_CHECKING([for DocBook DTD])
- FP_GEN_DOCBOOK_XML
- if $XmllintCmd --valid --noout conftest.xml > /dev/null 2>&1; then
- AC_MSG_RESULT([ok])
- else
- AC_MSG_RESULT([failed])
- AC_MSG_WARN([cannot find a DTD for DocBook XML V4.2, you will not be able to validate your documentation])
- AC_MSG_WARN([check your XML_CATALOG_FILES environment variable and/or /etc/xml/catalog])
- fi
- rm -rf conftest*
-fi
-])# FP_CHECK_DOCBOOK_DTD
-
-
-# FP_GEN_FO
-# ------------------
-# Generates a formatting objects document in conftest.fo.
-AC_DEFUN([FP_GEN_FO],
-[rm -f conftest.fo
-cat > conftest.fo << EOF
-<?xml version="1.0"?>
-<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
- <fo:layout-master-set>
- <fo:simple-page-master master-name="blank">
- <fo:region-body/>
- </fo:simple-page-master>
- </fo:layout-master-set>
- <fo:page-sequence master-reference="blank">
- <fo:flow flow-name="xsl-region-body">
- <fo:block>
- Test!
- </fo:block>
- </fo:flow>
- </fo:page-sequence>
-</fo:root>
-EOF
-]) # FP_GEN_FO
-
-
-# FP_PROG_FOP
-# -----------
-# Set the output variable 'FopCmd' to the first working 'fop' in the current
-# 'PATH'. Note that /usr/bin/fop is broken in SuSE 9.1 (unpatched), so try
-# /usr/share/fop/fop.sh in that case (or no 'fop'), too.
-AC_DEFUN([FP_PROG_FOP],
-[AC_PATH_PROGS([FopCmd1], [fop])
-if test -n "$FopCmd1"; then
- AC_CACHE_CHECK([for $FopCmd1 usability], [fp_cv_fop_usability],
- [FP_GEN_FO
- if "$FopCmd1" -fo conftest.fo -ps conftest.ps > /dev/null 2>&1; then
- fp_cv_fop_usability=yes
- else
- fp_cv_fop_usability=no
- fi
- rm -rf conftest*])
- if test x"$fp_cv_fop_usability" = xyes; then
- FopCmd=$FopCmd1
- fi
-fi
-if test -z "$FopCmd"; then
- AC_PATH_PROGS([FopCmd2], [fop.sh], , [/usr/share/fop])
- FopCmd=$FopCmd2
-fi
-AC_SUBST([FopCmd])
-])# FP_PROG_FOP
-
-
-# FP_PROG_FO_PROCESSOR
-# --------------------
-# Try to find an FO processor. PassiveTeX output is sometimes a bit strange, so
-# try FOP first. Sets the output variables FopCmd, XmltexCmd, DvipsCmd, and
-# PdfxmltexCmd.
-AC_DEFUN([FP_PROG_FO_PROCESSOR],
-[AC_REQUIRE([FP_PROG_FOP])
-AC_PATH_PROG([XmltexCmd], [xmltex])
-AC_PATH_PROG([DvipsCmd], [dvips])
-if test -z "$FopCmd"; then
- if test -z "$XmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI or PostScript documentation])
- else
- if test -z "$DvipsCmd"; then
- AC_MSG_WARN([cannot find a DVI => PS converter, you will not be able to build PostScript documentation])
- fi
- fi
- AC_PATH_PROG([PdfxmltexCmd], [pdfxmltex])
- if test -z "$PdfxmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => PDF converter, you will not be able to build PDF documentation])
- fi
-elif test -z "$XmltexCmd"; then
- AC_MSG_WARN([cannot find an FO => DVI converter, you will not be able to build DVI documentation])
-fi
-])# FP_PROG_FO_PROCESSOR
diff --git a/doc/conf.py b/doc/conf.py
new file mode 100644
index 00000000..d6b8bda8
--- /dev/null
+++ b/doc/conf.py
@@ -0,0 +1,69 @@
+# -*- coding: utf-8 -*-
+
+import sys
+import os
+import shlex
+
+extensions = []
+
+source_suffix = '.rst'
+master_doc = 'index'
+
+# General information about the project.
+project = u'Haddock'
+copyright = u'2016, Simon Marlow'
+author = u'Simon Marlow'
+version = '1.0'
+release = '1.0'
+
+language = 'en'
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+exclude_patterns = ['.build']
+todo_include_todos = False
+
+# Syntax highlighting
+highlight_language = 'haskell'
+pygments_style = 'tango'
+
+# -- Options for HTML output ----------------------------------------------
+
+html_theme = 'alabaster'
+htmlhelp_basename = 'Haddockdoc'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = { }
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (master_doc, 'Haddock.tex', u'Haddock Documentation',
+ u'Simon Marlow', 'manual'),
+]
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'haddock', u'Haddock Documentation',
+ [author], 1)
+]
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (master_doc, 'Haddock', u'Haddock Documentation',
+ author, 'Haddock', 'One line description of project.',
+ 'Miscellaneous'),
+]
+
diff --git a/doc/config.mk.in b/doc/config.mk.in
deleted file mode 100644
index e286794c..00000000
--- a/doc/config.mk.in
+++ /dev/null
@@ -1,15 +0,0 @@
-#-----------------------------------------------------------------------------
-# DocBook XML stuff
-
-XSLTPROC = @XsltprocCmd@
-XMLLINT = @XmllintCmd@
-FOP = @FopCmd@
-XMLTEX = @XmltexCmd@
-PDFXMLTEX = @PdfxmltexCmd@
-DVIPS = @DvipsCmd@
-
-DIR_DOCBOOK_XSL = @DIR_DOCBOOK_XSL@
-
-XSLTPROC_LABEL_OPTS = --stringparam toc.section.depth 3 \
- --stringparam section.autolabel 1 \
- --stringparam section.label.includes.component.label 1
diff --git a/doc/configure.ac b/doc/configure.ac
deleted file mode 100644
index acf459e8..00000000
--- a/doc/configure.ac
+++ /dev/null
@@ -1,12 +0,0 @@
-
-AC_INIT([Haddock docs], [1.0], [simonmar@microsoft.com], [])
-
-AC_CONFIG_SRCDIR([Makefile])
-
-dnl ** check for DocBook toolchain
-FP_CHECK_DOCBOOK_DTD
-FP_DIR_DOCBOOK_XSL([/usr/share/xml/docbook/stylesheet/nwalsh/current /usr/share/xml/docbook/stylesheet/nwalsh /usr/share/sgml/docbook/docbook-xsl-stylesheets* /usr/share/sgml/docbook/xsl-stylesheets* /opt/kde?/share/apps/ksgmltools2/docbook/xsl /usr/share/docbook-xsl /usr/share/sgml/docbkxsl /usr/local/share/xsl/docbook /sw/share/xml/xsl/docbook-xsl /usr/share/xml/docbook/xsl-stylesheets-*])
-FP_PROG_FO_PROCESSOR
-
-AC_CONFIG_FILES([config.mk])
-AC_OUTPUT
diff --git a/doc/docbook-xml.mk b/doc/docbook-xml.mk
deleted file mode 100644
index f6048187..00000000
--- a/doc/docbook-xml.mk
+++ /dev/null
@@ -1,130 +0,0 @@
-#-----------------------------------------------------------------------------
-# DocBook XML
-
-.PHONY: html html-no-chunks chm HxS fo dvi ps pdf
-
-ifneq "$(XML_DOC)" ""
-
-all :: html
-
-# multi-file XML document: main document name is specified in $(XML_DOC),
-# sub-documents (.xml files) listed in $(XML_SRCS).
-
-ifeq "$(XML_SRCS)" ""
-XML_SRCS = $(wildcard *.xml)
-endif
-
-XML_HTML = $(addsuffix /index.html,$(basename $(XML_DOC)))
-XML_HTML_NO_CHUNKS = $(addsuffix .html,$(XML_DOC))
-XML_CHM = $(addsuffix .chm,$(XML_DOC))
-XML_HxS = $(addsuffix .HxS,$(XML_DOC))
-XML_FO = $(addsuffix .fo,$(XML_DOC))
-XML_DVI = $(addsuffix .dvi,$(XML_DOC))
-XML_PS = $(addsuffix .ps,$(XML_DOC))
-XML_PDF = $(addsuffix .pdf,$(XML_DOC))
-
-$(XML_HTML) $(XML_NO_CHUNKS_HTML) $(XML_FO) $(XML_DVI) $(XML_PS) $(XML_PDF) :: $(XML_SRCS)
-
-html :: $(XML_HTML)
-html-no-chunks :: $(XML_HTML_NO_CHUNKS)
-chm :: $(XML_CHM)
-HxS :: $(XML_HxS)
-fo :: $(XML_FO)
-dvi :: $(XML_DVI)
-ps :: $(XML_PS)
-pdf :: $(XML_PDF)
-
-CLEAN_FILES += $(XML_HTML_NO_CHUNKS) $(XML_FO) $(XML_DVI) $(XML_PS) $(XML_PDF)
-
-FPTOOLS_CSS = fptools.css
-
-clean ::
- $(RM) -rf $(XML_DOC).out $(basename $(XML_DOC)) $(basename $(XML_DOC))-htmlhelp
-
-validate ::
- $(XMLLINT) --valid --noout $(XMLLINT_OPTS) $(XML_DOC).xml
-endif
-
-#-----------------------------------------------------------------------------
-# DocBook XML suffix rules
-#
-
-%.html : %.xml
- $(XSLTPROC) --output $@ \
- --stringparam html.stylesheet $(FPTOOLS_CSS) \
- $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \
- $(DIR_DOCBOOK_XSL)/html/docbook.xsl $<
-
-%/index.html : %.xml
- $(RM) -rf $(dir $@)
- $(XSLTPROC) --stringparam base.dir $(dir $@) \
- --stringparam use.id.as.filename 1 \
- --stringparam html.stylesheet $(FPTOOLS_CSS) \
- $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \
- $(DIR_DOCBOOK_XSL)/html/chunk.xsl $<
- cp $(FPTOOLS_CSS) $(dir $@)
-
-# Note: Numeric labeling seems to be uncommon for HTML Help
-%-htmlhelp/index.html : %.xml
- $(RM) -rf $(dir $@)
- $(XSLTPROC) --stringparam base.dir $(dir $@) \
- --stringparam manifest.in.base.dir 1 \
- --stringparam htmlhelp.chm "..\\"$(basename $<).chm \
- $(XSLTPROC_OPTS) \
- $(DIR_DOCBOOK_XSL)/htmlhelp/htmlhelp.xsl $<
-
-%-htmlhelp2/collection.HxC : %.xml
- $(RM) -rf $(dir $@)
- $(XSLTPROC) --stringparam base.dir $(dir $@) \
- --stringparam use.id.as.filename 1 \
- --stringparam manifest.in.base.dir 1 \
- $(XSLTPROC_OPTS) \
- $(DIR_DOCBOOK_XSL)/htmlhelp2/htmlhelp2.xsl $<
-
-# TODO: Detect hhc & Hxcomp via autoconf
-#
-# Two obstacles here:
-#
-# * The reason for the strange "if" below is that hhc returns 0 on error and 1
-# on success, the opposite of what shells and make expect.
-#
-# * There seems to be some trouble with DocBook indices, but the *.chm looks OK,
-# anyway, therefore we pacify make by "|| true". Ugly...
-#
-%.chm : %-htmlhelp/index.html
- ( cd $(dir $<) && if hhc htmlhelp.hhp ; then false ; else true ; fi ) || true
-
-%.HxS : %-htmlhelp2/collection.HxC
- ( cd $(dir $<) && if Hxcomp -p collection.HxC -o ../$@ ; then false ; else true ; fi )
-
-%.fo : %.xml
- $(XSLTPROC) --output $@ \
- --stringparam draft.mode no \
- $(XSLTPROC_LABEL_OPTS) $(XSLTPROC_OPTS) \
- $(DIR_DOCBOOK_XSL)/fo/docbook.xsl $<
-
-ifeq "$(FOP)" ""
-ifneq "$(PDFXMLTEX)" ""
-%.pdf : %.fo
- $(PDFXMLTEX) $<
- if grep "LaTeX Warning: Label(s) may have changed.Rerun to get cross-references right." $(basename $@).log > /dev/null ; then \
- $(PDFXMLTEX) $< ; \
- $(PDFXMLTEX) $< ; \
- fi
-endif
-else
-%.ps : %.fo
- $(FOP) $(FOP_OPTS) -fo $< -ps $@
-
-%.pdf : %.fo
- $(FOP) $(FOP_OPTS) -fo $< -pdf $@
-endif
-
-ifneq "$(XMLTEX)" ""
-%.dvi : %.fo
- $(XMLTEX) $<
- if grep "LaTeX Warning: Label(s) may have changed.Rerun to get cross-references right." $(basename $@).log > /dev/null ; then \
- $(XMLTEX) $< ; \
- $(XMLTEX) $< ; \
- fi
-endif
diff --git a/doc/fptools.css b/doc/fptools.css
deleted file mode 100644
index 5c7fc47b..00000000
--- a/doc/fptools.css
+++ /dev/null
@@ -1,36 +0,0 @@
-div {
- font-family: sans-serif;
- color: black;
- background: white
-}
-
-h1, h2, h3, h4, h5, h6, p.title { color: #005A9C }
-
-h1 { font: 170% sans-serif }
-h2 { font: 140% sans-serif }
-h3 { font: 120% sans-serif }
-h4 { font: bold 100% sans-serif }
-h5 { font: italic 100% sans-serif }
-h6 { font: small-caps 100% sans-serif }
-
-pre {
- font-family: monospace;
- border-width: 1px;
- border-style: solid;
- padding: 0.3em
-}
-
-pre.screen { color: #006400 }
-pre.programlisting { color: maroon }
-
-div.example {
- background-color: #fffcf5;
- margin: 1ex 0em;
- border: solid #412e25 1px;
- padding: 0ex 0.4em
-}
-
-a:link { color: #0000C8 }
-a:hover { background: #FFFFA8 }
-a:active { color: #D00000 }
-a:visited { color: #680098 }
diff --git a/doc/ghc.mk b/doc/ghc.mk
index 73d6b7f0..52a2f2a5 100644
--- a/doc/ghc.mk
+++ b/doc/ghc.mk
@@ -10,6 +10,11 @@
#
# -----------------------------------------------------------------------------
-utils/haddock/doc_DOCBOOK_SOURCES = utils/haddock/doc/haddock.xml
+INSTALL_HTML_DOC_DIRS += utils/haddock/doc/haddock
+
+html : html_utils/haddock/doc
+
+html_utils/haddock/doc :
+ make -C utils/haddock/doc html SPHINX_BUILD=$(SPHINXBUILD)
+ cp -R utils/haddock/doc/.build-html utils/haddock/doc/haddock
-$(eval $(call docbook,utils/haddock/doc,haddock))
diff --git a/doc/haddock.xml b/doc/haddock.xml
deleted file mode 100644
index e805a437..00000000
--- a/doc/haddock.xml
+++ /dev/null
@@ -1,2329 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
- "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
- <!ENTITY nbsp '&#160;'>
- <!ENTITY frac12 '&#189;'>
- <!ENTITY mdash '&#8212;'>
- <!ENTITY lsquo '&#8217;'>
- <!ENTITY rsquo '&#8218;'>
- <!ENTITY ldquo '&#8220;'>
- <!ENTITY rdquo '&#8221;'>
-] >
-
-<book id="haddock">
- <bookinfo>
- <date>2015-06-02</date>
- <title>Haddock User Guide</title>
- <author>
- <firstname>Simon</firstname>
- <surname>Marlow</surname>
- </author>
- <address><email>marlowsd@gmail.com</email></address>
- <author>
- <firstname>David</firstname>
- <surname>Waern</surname>
- </author>
- <address><email>david.waern@gmail.com</email></address>
- <author>
- <firstname>Mateusz</firstname>
- <surname>Kowalczyk</surname>
- </author>
- <address><email>fuuzetsu@fuuzetsu.co.uk</email></address>
- <copyright>
- <year>2010</year>
- <holder>Simon Marlow, David Waern</holder>
- </copyright>
- <copyright>
- <year>2013-2015</year>
- <holder>Mateusz Kowalczyk</holder>
- </copyright>
- <abstract>
- <para>This document describes Haddock version 2.16.2, a Haskell
- documentation tool.</para>
- </abstract>
- </bookinfo>
-
- <!-- Table of contents -->
- <toc></toc>
-
- <chapter id="introduction">
- <title>Introduction</title>
-
- <para>This is Haddock, a tool for automatically generating
- documentation from annotated Haskell source code. Haddock was
- designed with several goals in mind:</para>
-
- <itemizedlist>
- <listitem>
- <para>When documenting APIs, it is desirable to keep the
- documentation close to the actual interface or implementation
- of the API, preferably in the same file, to reduce the risk
- that the two become out of sync. Haddock therefore lets you
- write the documentation for an entity (function, type, or
- class) next to the definition of the entity in the source
- code.</para>
- </listitem>
- <listitem>
- <para>There is a tremendous amount of useful API documentation
- that can be extracted from just the bare source code,
- including types of exported functions, definitions of data
- types and classes, and so on. Haddock can therefore generate
- documentation from a set of straight Haskell 98 modules, and
- the documentation will contain precisely the interface that is
- available to a programmer using those modules.</para>
- </listitem>
- <listitem>
- <para>Documentation annotations in the source code should be
- easy on the eye when editing the source code itself, so as not
- to obscure the code and to make reading and writing
- documentation annotations easy. The easier it is to write
- documentation, the more likely the programmer is to do it.
- Haddock therefore uses lightweight markup in its annotations,
- taking several ideas from <ulink
- url="http://www.cse.unsw.edu.au/~chak/haskell/idoc/">IDoc</ulink>.
- In fact, Haddock can understand IDoc-annotated source
- code.</para>
- </listitem>
- <listitem>
- <para>The documentation should not expose any of the structure
- of the implementation, or to put it another way, the
- implementer of the API should be free to structure the
- implementation however he or she wishes, without exposing any
- of that structure to the consumer. In practical terms, this
- means that while an API may internally consist of several
- Haskell modules, we often only want to expose a single module
- to the user of the interface, where this single module just
- re-exports the relevant parts of the implementation
- modules.</para>
-
- <para>Haddock therefore understands the Haskell module system
- and can generate documentation which hides not only
- non-exported entities from the interface, but also the
- internal module structure of the interface. A documentation
- annotation can still be placed next to the implementation, and
- it will be propagated to the external module in the generated
- documentation.</para>
- </listitem>
- <listitem>
- <para>Being able to move around the documentation by following
- hyperlinks is essential. Documentation generated by Haddock
- is therefore littered with hyperlinks: every type and class
- name is a link to the corresponding definition, and
- user-written documentation annotations can contain identifiers
- which are linked automatically when the documentation is
- generated.</para>
- </listitem>
- <listitem>
- <para>We might want documentation in multiple formats - online
- and printed, for example. Haddock comes with HTML, LaTeX,
- and Hoogle backends, and it is structured in such a way that adding new
- backends is straightforward.</para>
- </listitem>
- </itemizedlist>
-
- <section id="obtaining">
- <title>Obtaining Haddock</title>
-
- <para>Distributions (source &amp; binary) of Haddock can be obtained
- from its <ulink url="http://www.haskell.org/haddock/">web
- site</ulink>.</para>
-
- <para>Up-to-date sources can also be obtained from our public
- darcs repository. The Haddock sources are at
- <literal>http://code.haskell.org/haddock</literal>. See
- <ulink url="http://www.darcs.net/">darcs.net</ulink> for more
- information on the darcs version control utility.</para>
- </section>
-
- <section id="license">
- <title>License</title>
-
- <para>The following license covers this documentation, and the
- Haddock source code, except where otherwise indicated.</para>
-
- <blockquote>
- <para>Copyright 2002-2010, Simon Marlow. All rights reserved.</para>
-
- <para>Redistribution and use in source and binary forms, with
- or without modification, are permitted provided that the
- following conditions are met:</para>
-
- <itemizedlist>
- <listitem>
- <para>Redistributions of source code must retain the above
- copyright notice, this list of conditions and the
- following disclaimer.</para>
- </listitem>
- <listitem>
- <para>Redistributions in binary form must reproduce the
- above copyright notice, this list of conditions and the
- following disclaimer in the documentation and/or other
- materials provided with the distribution.</para>
- </listitem>
- </itemizedlist>
-
- <para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS
- IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
- SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
- OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
- OF SUCH DAMAGE.</para>
- </blockquote>
- </section>
-
- <section>
- <title>Contributors</title>
- <para>Haddock was originally written by Simon Marlow. Since it is an open source
- project, many people have contributed to its development over the years.
- Below is a list of contributors in alphabetical order that we hope is
- somewhat complete. If you think you are missing from this list, please contact
- us.
- </para>
- <itemizedlist>
- <listitem><simpara>Ashley Yakeley</simpara></listitem>
- <listitem><simpara>Benjamin Franksen</simpara></listitem>
- <listitem><simpara>Brett Letner</simpara></listitem>
- <listitem><simpara>Clemens Fruhwirth</simpara></listitem>
- <listitem><simpara>Conal Elliott</simpara></listitem>
- <listitem><simpara>David Waern</simpara></listitem>
- <listitem><simpara>Duncan Coutts</simpara></listitem>
- <listitem><simpara>George Pollard</simpara></listitem>
- <listitem><simpara>George Russel</simpara></listitem>
- <listitem><simpara>Hal Daume</simpara></listitem>
- <listitem><simpara>Ian Lynagh</simpara></listitem>
- <listitem><simpara>Isaac Dupree</simpara></listitem>
- <listitem><simpara>Joachim Breitner</simpara></listitem>
- <listitem><simpara>Krasimir Angelov</simpara></listitem>
- <listitem><simpara>Lennart Augustsson</simpara></listitem>
- <listitem><simpara>Luke Plant</simpara></listitem>
- <listitem><simpara>Malcolm Wallace</simpara></listitem>
- <listitem><simpara>Manuel Chakravarty</simpara></listitem>
- <listitem><simpara>Mark Lentczner</simpara></listitem>
- <listitem><simpara>Mark Shields</simpara></listitem>
- <listitem><simpara>Mateusz Kowalczyk</simpara></listitem>
- <listitem><simpara>Mike Thomas</simpara></listitem>
- <listitem><simpara>Neil Mitchell</simpara></listitem>
- <listitem><simpara>Oliver Brown</simpara></listitem>
- <listitem><simpara>Roman Cheplyaka</simpara></listitem>
- <listitem><simpara>Ross Paterson</simpara></listitem>
- <listitem><simpara>Sigbjorn Finne</simpara></listitem>
- <listitem><simpara>Simon Hengel</simpara></listitem>
- <listitem><simpara>Simon Marlow</simpara></listitem>
- <listitem><simpara>Simon Peyton-Jones</simpara></listitem>
- <listitem><simpara>Stefan O'Rear</simpara></listitem>
- <listitem><simpara>Sven Panne</simpara></listitem>
- <listitem><simpara>Thomas Schilling</simpara></listitem>
- <listitem><simpara>Wolfgang Jeltsch</simpara></listitem>
- <listitem><simpara>Yitzchak Gale</simpara></listitem>
- </itemizedlist>
- </section>
- <section>
- <title>Acknowledgements</title>
-
- <para>Several documentation systems provided the inspiration for
- Haddock, most notably:</para>
-
- <itemizedlist>
- <listitem>
- <para><ulink
- url="http://www.cse.unsw.edu.au/~chak/haskell/idoc/">
- IDoc</ulink></para>
- </listitem>
- <listitem>
- <para><ulink
- url="http://www.fmi.uni-passau.de/~groessli/hdoc/">HDoc</ulink></para>
- </listitem>
- <listitem>
- <para><ulink url="http://www.stack.nl/~dimitri/doxygen/">
- Doxygen</ulink></para>
- </listitem>
- </itemizedlist>
-
- <para>and probably several others I've forgotten.</para>
-
- <para>Thanks to the the members
- of <email>haskelldoc@haskell.org</email>,
- <email>haddock@projects.haskell.org</email> and everyone who
- contributed to the many libraries that Haddock makes use
- of.</para>
- </section>
-
- </chapter>
-
- <chapter id="invoking">
- <title>Invoking Haddock</title>
- <para>Haddock is invoked from the command line, like so:</para>
-
- <cmdsynopsis>
- <command>haddock</command>
- <arg rep="repeat"><replaceable>option</replaceable></arg>
- <arg rep="repeat" choice="plain"><replaceable>file</replaceable></arg>
- </cmdsynopsis>
-
- <para>Where each <replaceable>file</replaceable> is a filename
- containing a Haskell source module (.hs) or a Literate Haskell source
- module (.lhs) or just a module name.</para>
-
- <para>All the modules specified on the command line will be
- processed together. When one module refers to an entity in
- another module being processed, the documentation will link
- directly to that entity.</para>
-
- <para>Entities that cannot be found, for example because they are
- in a module that isn't being processed as part of the current
- batch, simply won't be hyperlinked in the generated
- documentation. Haddock will emit warnings listing all the
- identifiers it couldn't resolve.</para>
-
- <para>The modules should <emphasis>not</emphasis> be mutually
- recursive, as Haddock don't like swimming in circles.</para>
-
- <para>Note that while older version would fail on invalid markup, this is considered a bug in the
- new versions. If you ever get failed parsing message, please report it.</para>
-
- <para>You must also specify an option for the output format.
- Currently only the <option>-h</option> option for HTML and the
- <option>--hoogle</option> option for outputting Hoogle data are
- functional.</para>
-
- <para>The packaging
- tool <ulink url="http://www.haskell.org/ghc/docs/latest/html/Cabal/index.html">Cabal</ulink>
- has Haddock support, and is often used instead of invoking Haddock
- directly.</para>
-
- <para>The following options are available:</para>
-
- <variablelist>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-B</option></primary></indexterm>
- <option>-B</option> <replaceable>dir</replaceable>
- </term>
- <listitem>
- <para>Tell GHC that that its lib directory is
- <replaceable>dir</replaceable>. Can be used to override the default path.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-o</option></primary></indexterm>
- <option>-o</option> <replaceable>dir</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--odir</option></primary></indexterm>
- <option>--odir</option>=<replaceable>dir</replaceable>
- </term>
- <listitem>
- <para>Generate files into <replaceable>dir</replaceable>
- instead of the current directory.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-l</option></primary></indexterm>
- <option>-l</option> <replaceable>dir</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--lib</option></primary></indexterm>
- <option>--lib</option>=<replaceable>dir</replaceable>
- </term>
- <listitem>
- <para>Use Haddock auxiliary files (themes, javascript, etc...) in <replaceable>dir</replaceable>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-i</option></primary></indexterm>
- <option>-i</option> <replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>-i</option></primary></indexterm>
- <option>-i</option> <replaceable>docpath</replaceable>,<replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>-i</option></primary></indexterm>
- <option>-i</option> <replaceable>docpath</replaceable>,<replaceable>srcpath</replaceable>,<replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--read-interface</option></primary></indexterm>
- <option>--read-interface</option>=<replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--read-interface</option></primary></indexterm>
- <option>--read-interface</option>=<replaceable>docpath</replaceable>,<replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--read-interface</option></primary></indexterm>
- <option>--read-interface</option>=<replaceable>docpath</replaceable>,<replaceable>srcpath</replaceable>,<replaceable>file</replaceable>
- </term>
- <listitem>
- <para>Read the interface file in
- <replaceable>file</replaceable>, which must have been
- produced by running Haddock with the
- <option>--dump-interface</option> option. The interface
- describes a set of modules whose HTML documentation is
- located in <replaceable>docpath</replaceable> (which may be a
- relative pathname). The <replaceable>docpath</replaceable> is
- optional, and defaults to <quote>.</quote>. The
- <replaceable>srcpath</replaceable> is optional but has no default
- value.</para>
-
- <para>This option allows Haddock to produce separate sets of
- documentation with hyperlinks between them. The
- <replaceable>docpath</replaceable> is used to direct hyperlinks
- to point to the right files; so make sure you don't move the
- HTML files later or these links will break. Using a
- relative <replaceable>docpath</replaceable> means that a
- documentation subtree can still be moved around without
- breaking links.</para>
-
- <para>Similarly to <replaceable>docpath</replaceable>, <replaceable>srcpath</replaceable> is used generate cross-package hyperlinks but
- within sources rendered with <option>--hyperlinked-source</option>
- option.</para>
-
- <para>Multiple <option>--read-interface</option> options may
- be given.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-D</option></primary></indexterm>
- <option>-D</option> <replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--dump-interface</option></primary></indexterm>
- <option>--dump-interface</option>=<replaceable>file</replaceable>
- </term>
- <listitem>
- <para>Produce an <firstterm>interface
- file</firstterm><footnote><para>Haddock interface files are
- not the same as Haskell interface files, I just couldn't
- think of a better name.</para> </footnote>
- in the file <replaceable>file</replaceable>. An interface
- file contains information Haddock needs to produce more
- documentation that refers to the modules currently being
- processed - see the <option>--read-interface</option> option
- for more details. The interface file is in a binary format;
- don't try to read it.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-h</option></primary></indexterm>
- <option>-h</option>
- </term>
- <term>
- <indexterm><primary><option>--html</option></primary></indexterm>
- <option>--html</option>
- </term>
- <listitem>
- <para>Generate documentation in HTML format. Several files
- will be generated into the current directory (or the
- specified directory if the <option>-o</option> option is
- given), including the following:</para>
- <variablelist>
- <varlistentry>
- <term><filename><replaceable>module</replaceable>.html</filename></term>
- <term><filename>mini_<replaceable>module</replaceable>.html</filename></term>
- <listitem>
- <para>An HTML page for each
- <replaceable>module</replaceable>, and a "mini" page for
- each used when viewing in frames.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>index.html</filename></term>
- <listitem>
- <para>The top level page of the documentation: lists
- the modules available, using indentation to represent
- the hierarchy if the modules are hierarchical.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>doc-index.html</filename></term>
- <term><filename>doc-index-<replaceable>X</replaceable>.html</filename></term>
- <listitem>
- <para>The alphabetic index, possibly split into multiple
- pages if big enough.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>frames.html</filename></term>
- <listitem>
- <para>The top level document when viewing in frames.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename><replaceable>some</replaceable>.css</filename></term>
- <term><filename><replaceable>etc...</replaceable></filename></term>
- <listitem>
- <para>Files needed for the themes used. Specify your themes
- using the <option>--theme</option> option.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>haddock-util.js</filename></term>
- <listitem>
- <para>Some JavaScript utilities used to implement some of the
- dynamic features like collapsible sections, and switching to
- frames view.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--latex</option></primary></indexterm>
- <option>--latex</option>
- </term>
- <listitem>
- <para>Generate documentation in LaTeX format. Several files
- will be generated into the current directory (or the
- specified directory if the <option>-o</option> option is
- given), including the following:</para>
-
- <variablelist>
- <varlistentry>
- <term><filename><replaceable>package</replaceable>.tex</filename></term>
- <listitem>
- <para>The top-level LaTeX source file; to format the
- documentation into PDF you might run something like
- this:</para>
-<screen>
-$ pdflatex <replaceable>package</replaceable>.tex</screen>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename>haddock.sty</filename></term>
- <listitem>
- <para>The default style. The file contains
- definitions for various macros used in the LaTeX
- sources generated by Haddock; to change the way the
- formatted output looks, you might want to override
- these by specifying your own style with
- the <option>--latex-style</option> option.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><filename><replaceable>module</replaceable>.tex</filename></term>
- <listitem>
- <para>The LaTeX documentation for
- each <replaceable>module</replaceable>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--latex-style</option></primary></indexterm>
- <option>--latex-style=<replaceable>style</replaceable></option>
- </term>
- <listitem>
- <para>This option lets you override the default style used
- by the LaTeX generated by the <option>--latex</option> option.
- Normally Haddock puts a
- standard <filename>haddock.sty</filename> in the output
- directory, and includes the
- command <literal>\usepackage{haddock}</literal> in the
- LaTeX source. If this option is given,
- then <filename>haddock.sty</filename> is not generated,
- and the command is
- instead <literal>\usepackage{<replaceable>style</replaceable>}</literal>.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--hyperlinked-source</option></primary></indexterm>
- <option>--hyperlinked-source</option>
- </term>
- <listitem>
- <para>Generate hyperlinked source code (as HTML web page). All
- rendered files will be put into
- <filename class='directory'>src/</filename> subfolder of output
- directory.</para>
- <para>Usually, this should be used in combination with
- <option>--html</option> option - generated documentation will then
- contain references to appropriate code fragments. Previously, this
- behaviour could be achieved by generating sources using external
- tool and specifying <option>--source-base</option>,
- <option>--source-module</option>, <option>--source-entity</option>
- and related options. Note that these flags are ignored once
- <option>--hyperlinked-source</option> is set.</para>
- <para>In order to make cross-package source hyperlinking possible,
- appropriate source paths have to be set up when providing
- interface files using <option>--read-interface</option>
- option.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--source-css</option></primary></indexterm>
- <option>--source-css=<replaceable>style</replaceable></option>
- </term>
- <listitem>
- <para>Use custom CSS file for sources rendered by the
- <option>--hyperlinked-source</option> option. If no custom style
- file is provided, Haddock will use default one.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-S</option></primary></indexterm>
- <option>-S</option>
- </term>
- <term>
- <indexterm><primary><option>--docbook</option></primary></indexterm>
- <option>--docbook</option>
- </term>
- <listitem>
- <para>Reserved for future use (output documentation in DocBook XML
- format).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--source-base</option></primary></indexterm>
- <option>--source-base</option>=<replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--source-module</option></primary></indexterm>
- <option>--source-module</option>=<replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--source-entity</option></primary></indexterm>
- <option>--source-entity</option>=<replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--source-entity-line</option></primary></indexterm>
- <option>--source-entity-line</option>=<replaceable>URL</replaceable>
- </term>
- <listitem>
- <para>Include links to the source files in the generated
- documentation. Use the <option>--source-base</option> option to add a
- source code link in the header bar of the contents and index pages.
- Use the <option>--source-module</option> to add a source code link in
- the header bar of each module page. Use the
- <option>--source-entity</option> option to add a source code link
- next to the documentation for every value and type in each module.
- <option>--source-entity-line</option> is a flag that gets used for
- entities that need to link to an exact source location rather than a
- name, eg. since they were defined inside a Template Haskell splice.
- </para>
-
- <para>In each case <replaceable>URL</replaceable> is the base URL
- where the source files can be found. For the per-module and
- per-entity URLs, the following substitutions are made within the
- string <replaceable>URL</replaceable>:</para>
-
- <itemizedlist>
- <listitem>
- <para>The string <literal>%M</literal> or <literal>%{MODULE}</literal>
- is replaced by the module name. Note that for the per-entity URLs
- this is the name of the <emphasis>exporting</emphasis> module.</para>
- </listitem>
- <listitem>
- <para>The string <literal>%F</literal> or <literal>%{FILE}</literal>
- is replaced by the original source file name. Note that for the
- per-entity URLs this is the name of the <emphasis>defining</emphasis>
- module.</para>
- </listitem>
- <listitem>
- <para>The string <literal>%N</literal> or <literal>%{NAME}</literal>
- is replaced by the name of the exported value or type. This is
- only valid for the <option>--source-entity</option> option.</para>
- </listitem>
- <listitem>
- <para>The string <literal>%K</literal> or <literal>%{KIND}</literal>
- is replaced by a flag indicating whether the exported name is a value
- '<literal>v</literal>' or a type '<literal>t</literal>'. This is
- only valid for the <option>--source-entity</option> option.</para>
- </listitem>
- <listitem>
- <para>The string <literal>%L</literal> or <literal>%{LINE}</literal>
- is replaced by the number of the line where the exported value or
- type is defined. This is only valid for the
- <option>--source-entity</option> option.</para>
- </listitem>
- <listitem>
- <para>The string <literal>%%</literal> is replaced by
- <literal>%</literal>.</para>
- </listitem>
-
- </itemizedlist>
-
- <para>For example, if your sources are online under some directory,
- you would say
- <literal>haddock --source-base=<replaceable>url</replaceable>/
- --source-module=<replaceable>url</replaceable>/%F</literal></para>
-
- <para>If you have html versions of your sources online with anchors
- for each type and function name, you would say
- <literal>haddock --source-base=<replaceable>url</replaceable>/
- --source-module=<replaceable>url</replaceable>/%M.html
- --source-entity=<replaceable>url</replaceable>/%M.html#%N</literal></para>
-
- <para>For the <literal>%{MODULE}</literal> substitution you may want to
- replace the '<literal>.</literal>' character in the module names with
- some other character (some web servers are known to get confused by
- multiple '<literal>.</literal>' characters in a file name). To
- replace it with a character <replaceable>c</replaceable> use
- <literal>%{MODULE/./<replaceable>c</replaceable>}</literal>.</para>
-
- <para>Similarly, for the <literal>%{FILE}</literal> substitution
- you may want to replace the '<literal>/</literal>' character in
- the file names with some other character (especially for links
- to colourised entity source code with a shared css file). To replace
- it with a character <replaceable>c</replaceable> use
- <literal>%{FILE///<replaceable>c</replaceable>}</literal>/</para>
-
- <para>One example of a tool that can generate syntax-highlighted
- HTML from your source code, complete with anchors suitable for use
- from haddock, is
- <ulink url="http://www.cs.york.ac.uk/fp/darcs/hscolour">hscolour</ulink>.</para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-s</option></primary></indexterm>
- <option>-s</option> <replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--source</option></primary></indexterm>
- <option>--source</option>=<replaceable>URL</replaceable>
- </term>
- <listitem>
- <para>Deprecated aliases for <option>--source-module</option></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--comments-base</option></primary></indexterm>
- <option>--comments-base</option>=<replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--comments-module</option></primary></indexterm>
- <option>--comments-module</option>=<replaceable>URL</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--comments-entity</option></primary></indexterm>
- <option>--comments-entity</option>=<replaceable>URL</replaceable>
- </term>
- <listitem>
- <para>Include links to pages where readers may comment on the
- documentation. This feature would typically be used in conjunction
- with a Wiki system.</para>
-
- <para>Use the <option>--comments-base</option> option to add a
- user comments link in the header bar of the contents and index pages.
- Use the <option>--comments-module</option> to add a user comments
- link in the header bar of each module page. Use the
- <option>--comments-entity</option> option to add a comments link
- next to the documentation for every value and type in each module.
- </para>
-
- <para>In each case <replaceable>URL</replaceable> is the base URL
- where the corresponding comments page can be found. For the
- per-module and per-entity URLs the same substitutions are made as
- with the <option>--source-module</option> and
- <option>--source-entity</option> options above.</para>
-
- <para>For example, if you want to link the contents page to a wiki
- page, and every module to subpages, you would say
- <literal>haddock --comments-base=<replaceable>url</replaceable>
- --comments-module=<replaceable>url</replaceable>/%M</literal></para>
-
- <para>If your Wiki system doesn't like the '<literal>.</literal>' character
- in Haskell module names, you can replace it with a different character. For
- example to replace the '<literal>.</literal>' characters with
- '<literal>_</literal>' use <literal>haddock
- --comments-base=<replaceable>url</replaceable>
- --comments-module=<replaceable>url</replaceable>/%{MODULE/./_}</literal>
- Similarly, you can replace the '<literal>/</literal>' in a file name (may
- be useful for entity comments, but probably not.) </para>
-
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--theme</option></primary></indexterm>
- <option>--theme</option>=<replaceable>path</replaceable>
- </term>
- <listitem>
- <para>Specify a theme to be used for HTML (<option>--html</option>)
- documentation. If given multiple times then the pages will use the
- first theme given by default, and have alternate style sheets for
- the others. The reader can switch between themes with browsers that
- support alternate style sheets, or with the "Style" menu that gets
- added when the page is loaded. If
- no themes are specified, then just the default built-in theme
- ("Ocean") is used.
- </para>
-
- <para>The <replaceable>path</replaceable> parameter can be one of:
- </para>
-
- <itemizedlist>
- <listitem>
- <para>A <emphasis>directory</emphasis>: The base name of
- the directory becomes the name of the theme. The directory
- must contain exactly one
- <filename><replaceable>some</replaceable>.css</filename> file.
- Other files, usually image files, will be copied, along with
- the <filename><replaceable>some</replaceable>.css</filename>
- file, into the generated output directory.</para>
- </listitem>
- <listitem>
- <para>A <emphasis>CSS file</emphasis>: The base name of
- the file becomes the name of the theme.</para>
- </listitem>
- <listitem>
- <para>The <emphasis>name</emphasis> of a built-in theme
- ("Ocean" or "Classic").</para>
- </listitem>
- </itemizedlist>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--built-in-themes</option></primary></indexterm>
- <option>--built-in-themes</option>
- </term>
- <listitem>
- <para>Includes the built-in themes ("Ocean" and "Classic").
- Can be combined with <option>--theme</option>. Note that order
- matters: The first specified theme will be the default.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-c</option></primary></indexterm>
- <option>-c</option> <replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--css</option></primary></indexterm>
- <option>--css</option>=<replaceable>file</replaceable>
- </term>
- <listitem>
- <para>Deprecated aliases for <option>--theme</option></para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-p</option></primary></indexterm>
- <option>-p</option> <replaceable>file</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--prologue</option></primary></indexterm>
- <option>--prologue</option>=<replaceable>file</replaceable>
- </term>
- <listitem>
- <para>Specify a file containing documentation which is
- placed on the main contents page under the heading
- &ldquo;Description&rdquo;. The file is parsed as a normal
- Haddock doc comment (but the comment markers are not
- required).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-t</option></primary></indexterm>
- <option>-t</option> <replaceable>title</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--title</option></primary></indexterm>
- <option>--title</option>=<replaceable>title</replaceable>
- </term>
- <listitem>
- <para>Use <replaceable>title</replaceable> as the page
- heading for each page in the documentation.This will
- normally be the name of the library being documented.</para>
-
- <para>The title should be a plain string (no markup
- please!).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-q</option></primary></indexterm>
- <option>-q</option> <replaceable>mode</replaceable>
- </term>
- <term>
- <indexterm><primary><option>--qual</option></primary></indexterm>
- <option>--qual</option>=<replaceable>mode</replaceable>
- </term>
- <listitem>
- <para>
- Specify how identifiers are qualified.
- </para>
- <para>
- <replaceable>mode</replaceable> should be one of
- <itemizedlist>
- <listitem>
- <para>none (default): don't qualify any identifiers</para>
- </listitem>
- <listitem>
- <para>full: always qualify identifiers completely</para>
- </listitem>
- <listitem>
- <para>local: only qualify identifiers that are not part
- of the module</para>
- </listitem>
- <listitem>
- <para>relative: like local, but strip name of the module
- from qualifications of identifiers in submodules</para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Example: If you generate documentation for module A, then the
- identifiers A.x, A.B.y and C.z are qualified as follows.
- </para>
- <para>
- <itemizedlist>
- <listitem>
- <simpara>none: x, y, z</simpara>
- </listitem>
- <listitem>
- <simpara>full: A.x, A.B.y, C.z</simpara>
- </listitem>
- <listitem>
- <simpara>local: x, A.B.y, C.z</simpara>
- </listitem>
- <listitem>
- <simpara>relative: x, B.y, C.z</simpara>
- </listitem>
- </itemizedlist>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-?</option></primary></indexterm>
- <option>-?</option>
- </term>
- <term>
- <indexterm><primary><option>--help</option></primary></indexterm>
- <option>--help</option>
- </term>
- <listitem>
- <para>Display help and exit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-V</option></primary></indexterm>
- <option>-V</option>
- </term>
- <term>
- <indexterm><primary><option>--version</option></primary></indexterm>
- <option>--version</option>
- </term>
- <listitem>
- <para>Output version information and exit.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-v</option></primary></indexterm>
- <option>-v</option>
- </term>
- <term>
- <indexterm><primary><option>--verbose</option></primary></indexterm>
- <option>--verbose</option>
- </term>
- <listitem>
- <para>Increase verbosity. Currently this will cause Haddock
- to emit some extra warnings, in particular about modules
- which were imported but it had no information about (this is
- often quite normal; for example when there is no information
- about the <literal>Prelude</literal>).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--use-contents</option></primary></indexterm>
- <option>--use-contents=<replaceable>URL</replaceable></option>
- </term>
- <term>
- <indexterm><primary><option>--use-index</option></primary></indexterm>
- <option>--use-index=<replaceable>URL</replaceable></option>
- </term>
- <listitem>
- <para>When generating HTML, do not generate an index.
- Instead, redirect the Contents and/or Index link on each page to
- <replaceable>URL</replaceable>. This option is intended for
- use in conjunction with <option>--gen-contents</option> and/or
- <option>--gen-index</option> for
- generating a separate contents and/or index covering multiple
- libraries.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--gen-contents</option></primary></indexterm>
- <option>--gen-contents</option>
- </term>
- <term>
- <indexterm><primary><option>--gen-index</option></primary></indexterm>
- <option>--gen-index</option>
- </term>
- <listitem>
- <para>Generate an HTML contents and/or index containing entries pulled
- from all the specified interfaces (interfaces are specified using
- <option>-i</option> or <option>--read-interface</option>).
- This is used to generate a single contents and/or index for multiple
- sets of Haddock documentation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--ignore-all-exports</option></primary>
- </indexterm>
- <option>--ignore-all-exports</option>
- </term>
- <listitem>
- <para>Causes Haddock to behave as if every module has the
- <literal>ignore-exports</literal> attribute (<xref
- linkend="module-attributes" />). This might be useful for
- generating implementation documentation rather than interface
- documentation, for example.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--hide</option></primary>
- </indexterm>
- <option>--hide</option>&nbsp;<replaceable>module</replaceable>
- </term>
- <listitem>
- <para>Causes Haddock to behave as if module
- <replaceable>module</replaceable> has the <literal>hide</literal>
- attribute. (<xref linkend="module-attributes" />).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--show-extensions</option></primary>
- </indexterm>
- <option>--show-extensions</option>&nbsp;<replaceable>module</replaceable>
- </term>
- <listitem>
- <para>Causes Haddock to behave as if module
- <replaceable>module</replaceable> has the <literal>show-extensions</literal>
- attribute. (<xref linkend="module-attributes" />).</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--optghc</option></primary></indexterm>
- <option>--optghc</option>=<replaceable>option</replaceable>
- </term>
- <listitem>
- <para>Pass <replaceable>option</replaceable> to GHC. Note that there is a double dash there, unlike for GHC.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>-w</option></primary></indexterm>
- <option>-w</option>
- </term>
- <term>
- <indexterm><primary><option>--no-warnings</option></primary></indexterm>
- <option>--no-warnings</option>
- </term>
- <listitem>
- <para>Turn off all warnings.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--compatible-interface-versions</option></primary></indexterm>
- <option>--compatible-interface-versions</option>
- </term>
- <listitem>
- <para>
- Prints out space-separated versions of binary Haddock interface files that this version is compatible
- with.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--no-tmp-comp-dir</option></primary></indexterm>
- <option>--no-tmp-comp-dir</option>
- </term>
- <listitem>
- <para>
- Do not use a temporary directory for reading and writing compilation output files
- (<literal>.o</literal>, <literal>.hi</literal>, and stub files). Instead, use the
- present directory or another directory that you have explicitly told GHC to use
- via the <literal>--optghc</literal> flag.
- </para>
- <para>
- This flag can be used to avoid recompilation if compilation files already exist.
- Compilation files are produced when Haddock has to process modules that make use of
- Template Haskell, in which case Haddock compiles the modules using the GHC API.
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><option>--print-missing-docs</option></primary></indexterm>
- <option>--print-missing-docs</option>
- </term>
- <listitem>
- <para>
- Print extra information about any undocumented entities.
- </para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <section id="cpp">
- <title>Using literate or pre-processed source</title>
-
- <para>Since Haddock uses GHC internally, both plain and
- literate Haskell sources are accepted without the need for the user
- to do anything. To use the C pre-processor, however,
- the user must pass the the <option>-cpp</option> option to GHC
- using <option>--optghc</option>.
- </para>
- </section>
-
- </chapter>
-
- <chapter id="markup">
- <title>Documentation and Markup</title>
-
- <para>Haddock understands special documentation annotations in the
- Haskell source file and propagates these into the generated
- documentation. The annotations are purely optional: if there are
- no annotations, Haddock will just generate documentation that
- contains the type signatures, data type declarations, and class
- declarations exported by each of the modules being
- processed.</para>
-
- <section>
- <title>Documenting a top-level declaration</title>
-
- <para>The simplest example of a documentation annotation is for
- documenting any top-level declaration (function type signature,
- type declaration, or class declaration). For example, if the
- source file contains the following type signature:</para>
-
-<programlisting>
-square :: Int -> Int
-square x = x * x
-</programlisting>
-
- <para>Then we can document it like this:</para>
-
-<programlisting>
--- |The 'square' function squares an integer.
-square :: Int -> Int
-square x = x * x
-</programlisting>
-
-
- <para>The <quote><literal>-- |</literal></quote> syntax begins a
- documentation annotation, which applies to the
- <emphasis>following</emphasis> declaration in the source file.
- Note that the annotation is just a comment in Haskell &mdash; it
- will be ignored by the Haskell compiler.</para>
-
- <para>The declaration following a documentation annotation
- should be one of the following:</para>
- <itemizedlist>
- <listitem>
- <para>A type signature for a top-level function,</para>
- </listitem>
- <listitem>
- <para>A <literal>data</literal> declaration,</para>
- </listitem>
- <listitem>
- <para>A <literal>newtype</literal> declaration,</para>
- </listitem>
- <listitem>
- <para>A <literal>type</literal> declaration</para>
- </listitem>
- <listitem>
- <para>A <literal>class</literal> declaration,</para>
- </listitem>
- <listitem>
- <para>A <literal>data family</literal> or
- <literal>type family</literal> declaration, or</para>
- </listitem>
- <listitem>
- <para>A <literal>data instance</literal> or
- <literal>type instance</literal> declaration.</para>
- </listitem>
- </itemizedlist>
-
- <para>If the annotation is followed by a different kind of
- declaration, it will probably be ignored by Haddock.</para>
-
- <para>Some people like to write their documentation
- <emphasis>after</emphasis> the declaration; this is possible in
- Haddock too:</para>
-
-<programlisting>
-square :: Int -> Int
--- ^The 'square' function squares an integer.
-square x = x * x
-</programlisting>
-
- <para>Note that Haddock doesn't contain a Haskell type system
- &mdash; if you don't write the type signature for a function,
- then Haddock can't tell what its type is and it won't be
- included in the documentation.</para>
-
- <para>Documentation annotations may span several lines; the
- annotation continues until the first non-comment line in the
- source file. For example:</para>
-
-<programlisting>
--- |The 'square' function squares an integer.
--- It takes one argument, of type 'Int'.
-square :: Int -> Int
-square x = x * x
-</programlisting>
-
- <para>You can also use Haskell's nested-comment style for
- documentation annotations, which is sometimes more convenient
- when using multi-line comments:</para>
-
-<programlisting>
-{-|
- The 'square' function squares an integer.
- It takes one argument, of type 'Int'.
--}
-square :: Int -> Int
-square x = x * x
-</programlisting>
-
- </section>
- <section>
- <title>Documenting parts of a declaration</title>
-
- <para>In addition to documenting the whole declaration, in some
- cases we can also document individual parts of the
- declaration.</para>
-
- <section>
- <title>Class methods</title>
-
- <para>Class methods are documented in the same way as top
- level type signatures, by using either the
- <quote><literal>--&nbsp;|</literal></quote> or
- <quote><literal>--&nbsp;^</literal></quote>
- annotations:</para>
-
-<programlisting>
-class C a where
- -- | This is the documentation for the 'f' method
- f :: a -> Int
- -- | This is the documentation for the 'g' method
- g :: Int -> a
-</programlisting>
- </section>
-
- <section>
- <title>Constructors and record fields</title>
-
- <para>Constructors are documented like so:</para>
-
-<programlisting>
-data T a b
- -- | This is the documentation for the 'C1' constructor
- = C1 a b
- -- | This is the documentation for the 'C2' constructor
- | C2 a b
-</programlisting>
-
- <para>or like this:</para>
-
-<programlisting>
-data T a b
- = C1 a b -- ^ This is the documentation for the 'C1' constructor
- | C2 a b -- ^ This is the documentation for the 'C2' constructor
-</programlisting>
-
- <para>Record fields are documented using one of these
- styles:</para>
-
-<programlisting>
-data R a b =
- C { -- | This is the documentation for the 'a' field
- a :: a,
- -- | This is the documentation for the 'b' field
- b :: b
- }
-
-data R a b =
- C { a :: a -- ^ This is the documentation for the 'a' field
- , b :: b -- ^ This is the documentation for the 'b' field
- }
-</programlisting>
-
- <para>Alternative layout styles are generally accepted by
- Haddock - for example doc comments can appear before or after
- the comma in separated lists such as the list of record fields
- above.</para>
-
- <para>In case that more than one constructor exports a field
- with the same name, the documentation attached to the first
- occurence of the field will be used, even if a comment is not
- present.
- </para>
-
-<programlisting>
-data T a = A { someField :: a -- ^ Doc for someField of A
- }
- | B { someField :: a -- ^ Doc for someField of B
- }
-</programlisting>
-
- <para>In the above example, all occurences of
- <literal>someField</literal> in the documentation are going to
- be documented with <literal>Doc for someField of A</literal>.
- Note that Haddock versions 2.14.0 and before would join up
- documentation of each field and render the result. The reason
- for this seemingly weird behaviour is the fact that
- <literal>someField</literal> is actually the same (partial)
- function.</para>
-
- </section>
-
- <section>
- <title>Function arguments</title>
-
- <para>Individual arguments to a function may be documented
- like this:</para>
-
-<programlisting>
-f :: Int -- ^ The 'Int' argument
- -> Float -- ^ The 'Float' argument
- -> IO () -- ^ The return value
-</programlisting>
- </section>
- </section>
-
- <section>
- <title>The module description</title>
-
- <para>A module itself may be documented with multiple fields
- that can then be displayed by the backend. In particular, the
- HTML backend displays all the fields it currently knows
- about. We first show the most complete module documentation
- example and then talk about the fields.</para>
-
-<programlisting>
-{-|
-Module : W
-Description : Short description
-Copyright : (c) Some Guy, 2013
- Someone Else, 2014
-License : GPL-3
-Maintainer : sample@email.com
-Stability : experimental
-Portability : POSIX
-
-Here is a longer description of this module, containing some
-commentary with @some markup@.
--}
-module W where
-...
-</programlisting>
-
- <para>The <quote>Module</quote> field should be clear. It
- currently doesn't affect the output of any of the backends but
- you might want to include it for human information or for any
- other tools that might be parsing these comments without the
- help of GHC.</para>
-
- <para>The <quote>Description</quote> field accepts some short text
- which outlines the general purpose of the module. If you're
- generating HTML, it will show up next to the module link in
- the module index.</para>
-
- <para>The <quote>Copyright</quote>, <quote>License</quote>,
- <quote>Maintainer</quote> and <quote>Stability</quote> fields
- should be obvious. An alternative spelling for the
- <quote>License</quote> field is accepted as
- <quote>Licence</quote> but the output will always prefer
- <quote>License</quote>.</para>
-
- <para>The <quote>Portability</quote> field has seen varied use
- by different library authors. Some people put down things like
- operating system constraints there while others put down which GHC
- extensions are used in the module. Note that you might want to
- consider using the <quote>show-extensions</quote> module flag for the
- latter.</para>
-
- <para>Finally, a module may contain a documentation comment
- before the module header, in which case this comment is
- interpreted by Haddock as an overall description of the module
- itself, and placed in a section entitled
- <quote>Description</quote> in the documentation for the module.
- All usual Haddock markup is valid in this comment.</para>
-
- <para>All fields are optional but they must be in order if they
- do appear. Multi-line fields are accepted but the consecutive
- lines have to start indented more than their label. If your
- label is indented one space as is often the case with
- <quote>--</quote> syntax, the consecutive lines have to start at
- two spaces at the very least. Please note that we do not enforce
- the format for any of the fields and the established formats are
- just a convention.</para>
-
- </section>
-
- <section>
- <title>Controlling the documentation structure</title>
-
- <para>Haddock produces interface documentation that lists only
- the entities actually exported by the module. The documentation
- for a module will include <emphasis>all</emphasis> entities
- exported by that module, even if they were re-exported by
- another module. The only exception is when Haddock can't see
- the declaration for the re-exported entity, perhaps because it
- isn't part of the batch of modules currently being
- processed.</para>
-
- <para>However, to Haddock the export list has even more
- significance than just specifying the entities to be included in
- the documentation. It also specifies the
- <emphasis>order</emphasis> that entities will be listed in the
- generated documentation. This leaves the programmer free to
- implement functions in any order he/she pleases, and indeed in
- any <emphasis>module</emphasis> he/she pleases, but still
- specify the order that the functions should be documented in the
- export list. Indeed, many programmers already do this: the
- export list is often used as a kind of ad-hoc interface
- documentation, with headings, groups of functions, type
- signatures and declarations in comments.</para>
-
- <para>You can insert headings and sub-headings in the
- documentation by including annotations at the appropriate point
- in the export list. For example:</para>
-
-<programlisting>
-module Foo (
- -- * Classes
- C(..),
- -- * Types
- -- ** A data type
- T,
- -- ** A record
- R,
- -- * Some functions
- f, g
- ) where
-</programlisting>
-
- <para>Headings are introduced with the syntax
- <quote><literal>--&nbsp;*</literal></quote>,
- <quote><literal>--&nbsp;**</literal></quote> and so on, where
- the number of <literal>*</literal>s indicates the level of the
- heading (section, sub-section, sub-sub-section, etc.).</para>
-
- <para>If you use section headings, then Haddock will generate a
- table of contents at the top of the module documentation for
- you.</para>
-
- <para>The alternative style of placing the commas at the
- beginning of each line is also supported. eg.:</para>
-
-<programlisting>
-module Foo (
- -- * Classes
- , C(..)
- -- * Types
- -- ** A data type
- , T
- -- ** A record
- , R
- -- * Some functions
- , f
- , g
- ) where
-</programlisting>
-
- <section>
- <title>Re-exporting an entire module</title>
-
- <para>Haskell allows you to re-export the entire contents of a
- module (or at least, everything currently in scope that was
- imported from a given module) by listing it in the export
- list:</para>
-
-<programlisting>
-module A (
- module B,
- module C
- ) where
-</programlisting>
-
- <para>What will the Haddock-generated documentation for this
- module look like? Well, it depends on how the modules
- <literal>B</literal> and <literal>C</literal> are imported.
- If they are imported wholly and without any
- <literal>hiding</literal> qualifiers, then the documentation
- will just contain a cross-reference to the documentation for
- <literal>B</literal> and <literal>C</literal>. However, if
- the modules are not <emphasis>completely</emphasis>
- re-exported, for example:</para>
-
-<programlisting>
-module A (
- module B,
- module C
- ) where
-
-import B hiding (f)
-import C (a, b)
-</programlisting>
-
- <para>then Haddock behaves as if the set of entities
- re-exported from <literal>B</literal> and <literal>C</literal>
- had been listed explicitly in the export
- list<footnote><para>NOTE: this is not fully implemented at the
- time of writing (version 0.2). At the moment, Haddock always
- inserts a cross-reference.</para>
- </footnote>.</para>
-
- <para>The exception to this rule is when the re-exported
- module is declared with the <literal>hide</literal> attribute
- (<xref linkend="module-attributes"/>), in which case the module
- is never cross-referenced; the contents are always expanded in
- place in the re-exporting module.</para>
- </section>
-
- <section>
- <title>Omitting the export list</title>
-
- <para>If there is no export list in the module, how does
- Haddock generate documentation? Well, when the export list is
- omitted, e.g.:</para>
-
-<programlisting>module Foo where</programlisting>
-
- <para>this is equivalent to an export list which mentions
- every entity defined at the top level in this module, and
- Haddock treats it in the same way. Furthermore, the generated
- documentation will retain the order in which entities are
- defined in the module. In this special case the module body
- may also include section headings (normally they would be
- ignored by Haddock).</para>
-
-<programlisting>
-module Foo where
-
--- * This heading will now appear before foo.
-
--- | Documentation for 'foo'.
-foo :: Integer
-foo = 5
-</programlisting>
-
- </section>
- </section>
-
- <section>
- <title>Named chunks of documentation</title>
-
- <para>Occasionally it is desirable to include a chunk of
- documentation which is not attached to any particular Haskell
- declaration. There are two ways to do this:</para>
-
- <itemizedlist>
- <listitem>
- <para>The documentation can be included in the export list
- directly, e.g.:</para>
-
-<programlisting>
-module Foo (
- -- * A section heading
-
- -- | Some documentation not attached to a particular Haskell entity
- ...
- ) where
-</programlisting>
- </listitem>
-
- <listitem>
- <para>If the documentation is large and placing it inline in
- the export list might bloat the export list and obscure the
- structure, then it can be given a name and placed out of
- line in the body of the module. This is achieved with a
- special form of documentation annotation
- <quote><literal>--&nbsp;$</literal></quote>:</para>
-
-<programlisting>
-module Foo (
- -- * A section heading
-
- -- $doc
- ...
- ) where
-
--- $doc
--- Here is a large chunk of documentation which may be referred to by
--- the name $doc.
-</programlisting>
-
- <para>The documentation chunk is given a name, which is the
- sequence of alphanumeric characters directly after the
- <quote><literal>--&nbsp;$</literal></quote>, and it may be
- referred to by the same name in the export list.</para>
- </listitem>
- </itemizedlist>
- </section>
-
- <section id="hyperlinking">
- <title>Hyperlinking and re-exported entities</title>
-
- <para>When Haddock renders a type in the generated
- documentation, it hyperlinks all the type constructors and class
- names in that type to their respective definitions. But for a
- given type constructor or class there may be several modules
- re-exporting it, and therefore several modules whose
- documentation contains the definition of that type or class
- (possibly including the current module!) so which one do we link
- to?</para>
-
- <para>Let's look at an example. Suppose we have three modules
- <literal>A</literal>, <literal>B</literal> and
- <literal>C</literal> defined as follows:</para>
-
-<programlisting>
-module A (T) where
-data T a = C a
-
-module B (f) where
-import A
-f :: T Int -> Int
-f (C i) = i
-
-module C (T, f) where
-import A
-import B
-</programlisting>
-
- <para>Module <literal>A</literal> exports a datatype
- <literal>T</literal>. Module <literal>B</literal> imports
- <literal>A</literal> and exports a function <literal>f</literal>
- whose type refers to <literal>T</literal>. Also, both
- <literal>T</literal> and <literal>f</literal> are re-exported from
- module C.</para>
-
- <para>Haddock takes the view that each entity has a
- <emphasis>home</emphasis> module; that is, the module that the library
- designer would most like to direct the user to, to find the
- documentation for that entity. So, Haddock makes all links to an entity
- point to the home module. The one exception is when the entity is also
- exported by the current module: Haddock makes a local link if it
- can.</para>
-
- <para>How is the home module for an entity determined?
- Haddock uses the following rules:</para>
-
- <itemizedlist>
- <listitem>
- <para>If modules A and B both export the entity, and module A imports
- (directly or indirectly) module B, then B is preferred.</para>
- </listitem>
- <listitem>
- <para>A module with the <literal>hide</literal> attribute is never
- chosen as the home.</para>
- </listitem>
- <listitem>
- <para>A module with the <literal>not-home</literal> attribute is only
- chosen if there are no other modules to choose.</para>
- </listitem>
- </itemizedlist>
-
- <para>If multiple modules fit the criteria, then one is chosen at
- random. If no modules fit the criteria (because the candidates are all
- hidden), then Haddock will issue a warning for each reference to an
- entity without a home.</para>
-
- <para>In the example above, module <literal>A</literal> is chosen as the
- home for <literal>T</literal> because it does not import any other
- module that exports <literal>T</literal>. The link from
- <literal>f</literal>'s
- type in module <literal>B</literal> will therefore point to
- <literal>A.T</literal>. However, <literal>C</literal> also exports
- <literal>T</literal> and <literal>f</literal>, and the link from
- <literal>f</literal>'s type in <literal>C</literal> will therefore
- point locally to <literal>C.T</literal>.</para>
- </section>
-
- <section id="module-attributes">
- <title>Module Attributes</title>
-
- <para>Certain attributes may be specified for each module which
- affects the way that Haddock generates documentation for that
- module. Attributes are specified in a comma-separated list in an
- <literal>{-# OPTIONS_HADDOCK ... #-}</literal> pragma at the
- top of the module, either before or after the module
- description. For example:</para>
-
-<programlisting>
-{-# OPTIONS_HADDOCK hide, prune, ignore-exports #-}
-
--- |Module description
-module A where
-...
-</programlisting>
-
- <para>The options and module description can be in either order.</para>
-
- <para>The following attributes are currently understood by
- Haddock:</para>
-
- <variablelist>
- <varlistentry>
- <term>
- <indexterm><primary><literal>hide</literal></primary></indexterm>
- <literal>hide</literal>
- </term>
- <listitem>
- <para>Omit this module from the generated documentation,
- but nevertheless propagate definitions and documentation
- from within this module to modules that re-export those
- definitions.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><literal>hide</literal></primary></indexterm>
- <literal>prune</literal>
- </term>
- <listitem>
- <para>Omit definitions that have no documentation
- annotations from the generated documentation.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><literal>ignore-exports</literal></primary></indexterm>
- <literal>ignore-exports</literal>
- </term>
- <listitem>
- <para>Ignore the export list. Generate documentation as
- if the module had no export list - i.e. all the top-level
- declarations are exported, and section headings may be
- given in the body of the module.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><literal>not-home</literal></primary></indexterm>
- <literal>not-home</literal>
- </term>
- <listitem>
- <para>Indicates that the current module should not be considered to
- be the home module for each entity it exports,
- unless that entity is not exported from any other module. See
- <xref linkend="hyperlinking" /> for more details.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>
- <indexterm><primary><literal>show-extensions</literal></primary></indexterm>
- <literal>show-extensions</literal>
- </term>
- <listitem>
- <para>Indicates that we should render the extensions used in this module in the
- resulting documentation. This will only render if the output format supports it.
- If Language is set, it will be shown as well and all the extensions implied by it won't.
- All enabled extensions will be rendered, including those implied by their more powerful versions.</para>
- </listitem>
- </varlistentry>
-
- </variablelist>
-
- </section>
-
- <section>
- <title>Markup</title>
-
- <para>Haddock understands certain textual cues inside
- documentation annotations that tell it how to render the
- documentation. The cues (or <quote>markup</quote>) have been
- designed to be simple and mnemonic in ASCII so that the
- programmer doesn't have to deal with heavyweight annotations
- when editing documentation comments.</para>
-
- <section>
- <title>Paragraphs</title>
-
- <para>One or more blank lines separates two paragraphs in a
- documentation comment.</para>
- </section>
-
- <section>
- <title>Special characters</title>
-
- <para>The following characters have special meanings in
- documentation comments: <literal>\</literal>, <literal>/</literal>,
- <literal>'</literal>, <literal>`</literal>,
- <literal>"</literal>, <literal>@</literal>,
- <literal>&lt;</literal>. To insert a literal occurrence of
- one of these special characters, precede it with a backslash
- (<literal>\</literal>).</para>
-
- <para>Additionally, the character <literal>&gt;</literal> has
- a special meaning at the beginning of a line, and the
- following characters have special meanings at the beginning of
- a paragraph:
- <literal>*</literal>, <literal>-</literal>. These characters
- can also be escaped using <literal>\</literal>.</para>
-
- <para>Furthermore, the character sequence <literal>&gt;&gt;&gt;</literal>
- has a special meaning at the beginning of a line. To
- escape it, just prefix the characters in the sequence with a
- backslash.</para>
- </section>
-
- <section>
- <title>Character references</title>
-
- <para>Although Haskell source files may contain any character
- from the Unicode character set, the encoding of these characters
- as bytes varies between systems, so that only source files
- restricted to the ASCII character set are portable. Other
- characters may be specified in character and string literals
- using Haskell character escapes. To represent such characters
- in documentation comments, Haddock supports SGML-style numeric
- character references of the forms
- <literal>&amp;#</literal><replaceable>D</replaceable><literal>;</literal>
- and
- <literal>&amp;#x</literal><replaceable>H</replaceable><literal>;</literal>
- where <replaceable>D</replaceable> and <replaceable>H</replaceable>
- are decimal and hexadecimal numbers denoting a code position
- in Unicode (or ISO 10646). For example, the references
- <literal>&amp;#x3BB;</literal>, <literal>&amp;#x3bb;</literal>
- and <literal>&amp;#955;</literal> all represent the lower-case
- letter lambda.</para>
- </section>
-
- <section>
- <title>Code Blocks</title>
-
- <para>Displayed blocks of code are indicated by surrounding a
- paragraph with <literal>@...@</literal> or by preceding each
- line of a paragraph with <literal>&gt;</literal> (we often
- call these &ldquo;bird tracks&rdquo;). For
- example:</para>
-
-<programlisting>
--- | This documentation includes two blocks of code:
---
--- @
--- f x = x + x
--- @
---
--- &gt; g x = x * 42
-</programlisting>
-
- <para>There is an important difference between the two forms
- of code block: in the bird-track form, the text to the right
- of the &lsquo;<literal>></literal>&rsquo; is interpreted
- literally, whereas the <literal>@...@</literal> form
- interprets markup as normal inside the code block.</para>
- </section>
-
- <section>
- <title>Examples</title>
-
- <para> Haddock has markup support for examples of interaction with a
- <emphasis>read-eval-print loop (REPL)</emphasis>. An
- example is introduced with
- <literal>&gt;&gt;&gt;</literal> followed by an expression followed
- by zero or more result lines:</para>
-
-<programlisting>
--- | Two examples are given below:
---
--- &gt;&gt;&gt; fib 10
--- 55
---
--- &gt;&gt;&gt; putStrLn "foo\nbar"
--- foo
--- bar
-</programlisting>
- <para>Result lines that only contain the string
- <literal>&lt;BLANKLINE&gt;</literal> are rendered as blank lines in the
- generated documentation.</para>
- </section>
-
- <section>
- <title>Properties</title>
- <para>
- Haddock provides markup for properties:
-<programlisting>
--- | Addition is commutative:
---
--- prop> a + b = b + a
-</programlisting>
- This allows third-party applications to extract and verify them.
- </para>
- </section>
-
- <section>
- <title>Hyperlinked Identifiers</title>
-
- <para>Referring to a Haskell identifier, whether it be a type,
- class, constructor, or function, is done by surrounding it
- with single quotes:</para>
-
-<programlisting>
--- | This module defines the type 'T'.
-</programlisting>
-
- <para>If there is an entity <literal>T</literal> in scope in
- the current module, then the documentation will hyperlink the
- reference in the text to the definition of
- <literal>T</literal> (if the output format supports
- hyperlinking, of course; in a printed format it might instead
- insert a page reference to the definition).</para>
-
- <para>It is also possible to refer to entities that are not in
- scope in the current module, by giving the full qualified name
- of the entity:</para>
-
-<programlisting>
--- | The identifier 'M.T' is not in scope
-</programlisting>
-
- <para>If <literal>M.T</literal> is not otherwise in scope,
- then Haddock will simply emit a link pointing to the entity
- <literal>T</literal> exported from module <literal>M</literal>
- (without checking to see whether either <literal>M</literal>
- or <literal>M.T</literal> exist).</para>
-
- <para>To make life easier for documentation writers, a quoted
- identifier is only interpreted as such if the quotes surround
- a lexically valid Haskell identifier. This means, for
- example, that it normally isn't necessary to escape the single
- quote when used as an apostrophe:</para>
-
-<programlisting>
--- | I don't have to escape my apostrophes; great, isn't it?
-</programlisting>
-
- <para>Nothing special is needed to hyperlink identifiers which
- contain apostrophes themselves: to hyperlink
- <literal>foo'</literal> one would simply type
- <literal>'foo''</literal>. To hyperlink identifiers written in
- infix form, simply put them in quotes as always:
- <literal>'`elem`'</literal>.</para>
-
- <para>For compatibility with other systems, the following
- alternative form of markup is accepted<footnote><para>
- We chose not to use this as the primary markup for
- identifiers because strictly speaking the <literal>`</literal>
- character should not be used as a left quote, it is a grave accent.</para>
- </footnote>: <literal>`T'</literal>.</para>
- </section>
-
- <section>
- <title>Emphasis, Bold and Monospaced text</title>
-
- <para>Emphasis may be added by surrounding text with
- <literal>/.../</literal>. Other markup is valid inside emphasis. To have a forward
- slash inside of emphasis, just escape it: <literal>/fo\/o/</literal></para>
-
- <para>Bold (strong) text is indicated by surrounding it with <literal>__...__</literal>.
- Other markup is valid inside bold. For example, <literal>__/foo/__</literal> will make the emphasised
- text <literal>foo</literal> bold. You don't have to escape a single underscore if you need it bold:
- <literal>__This_text_with_underscores_is_bold__</literal>.
- </para>
-
- <para>Monospaced (or typewriter) text is indicated by
- surrounding it with <literal>@...@</literal>. Other markup is
- valid inside a monospaced span: for example
- <literal>@'f'&nbsp;a&nbsp;b@</literal> will hyperlink the
- identifier <literal>f</literal> inside the code fragment.</para>
- </section>
-
- <section>
- <title>Linking to modules</title>
-
- <para>Linking to a module is done by surrounding the module
- name with double quotes:</para>
-
-<programlisting>
--- | This is a reference to the "Foo" module.
-</programlisting>
-
- <para>A basic check is done on the syntax of the header name to ensure that it is valid
- before turning it into a link but unlike with identifiers, whether the module is in scope isn't checked
- and will always be turned into a link.
- </para>
-
- </section>
-
- <section>
- <title>Itemized and Enumerated lists</title>
-
- <para>A bulleted item is represented by preceding a paragraph
- with either <quote><literal>*</literal></quote> or
- <quote><literal>-</literal></quote>. A sequence of bulleted
- paragraphs is rendered as an itemized list in the generated
- documentation, eg.:</para>
-
-<programlisting>
--- | This is a bulleted list:
---
--- * first item
---
--- * second item
-</programlisting>
-
- <para>An enumerated list is similar, except each paragraph
- must be preceded by either
- <quote><literal>(<replaceable>n</replaceable>)</literal></quote>
- or
- <quote><literal><replaceable>n</replaceable>.</literal></quote>
- where <replaceable>n</replaceable> is any integer. e.g.</para>
-
-<programlisting>
--- | This is an enumerated list:
---
--- (1) first item
---
--- 2. second item
-</programlisting>
-
- <para>Lists of the same type don't have to be separated by a newline:</para>
-<programlisting>
--- | This is an enumerated list:
---
--- (1) first item
--- 2. second item
---
--- This is a bulleted list:
---
--- * first item
--- * second item
-</programlisting>
-
- <para>You can have more than one line of content in a list element:
- </para>
-<programlisting>
--- |
--- * first item
--- and more content for the first item
--- * second item
--- and more content for the second item
-</programlisting>
-
- <para>You can even nest whole paragraphs inside of list elements. The rules
- are 4 spaces for each indentation level. You're required to use a newline before
- such nested paragraph:
- </para>
-<programlisting>
-{-|
-* Beginning of list
-This belongs to the list above!
-
- > nested
- > bird
- > tracks
-
- * Next list
- More of the indented list.
-
- * Deeper
-
- @
- even code blocks work
- @
-
- * Deeper
-
- 1. Even deeper!
- 2. No newline separation even in indented lists.
--}
-</programlisting>
- <para>The indentation of the first list item is honoured. That is,
- in the following example the items are on the same level. Before
- Haddock 2.16.1, the second item would have been nested under the
- first item which was unexpected.
- </para>
-<programlisting>
-{-|
- * foo
-
- * bar
--}
-</programlisting>
- </section>
-
- <section>
- <title>Definition lists</title>
-
- <para>Definition lists are written as follows:</para>
-
-<programlisting>
--- | This is a definition list:
---
--- [@foo@]: The description of @foo@.
---
--- [@bar@]: The description of @bar@.
-</programlisting>
-
- <para>To produce output something like this:</para>
-
- <variablelist>
- <varlistentry>
- <term><literal>foo</literal></term>
- <listitem>
- <para>The description of <literal>foo</literal>.</para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><literal>bar</literal></term>
- <listitem>
- <para>The description of <literal>bar</literal>.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Each paragraph should be preceded by the
- &ldquo;definition term&rdquo; enclosed in square brackets and followed by a colon.
- Other markup operators may be used freely within the
- definition term. You can escape <literal>]</literal> with a backslash as usual.</para>
-
- <para>Same rules about nesting and no newline separation as for bulleted and numbered lists apply.
- </para>
-
- </section>
-
- <section>
- <title>URLs</title>
-
- <para>
- A URL can be included in a documentation comment by surrounding it in
- angle brackets, for example:
- </para>
-
-<programlisting>
-&lt;http://example.com&gt;
-</programlisting>
-
- <para>
- If the output format supports it, the URL will be turned into a
- hyperlink when rendered.
- </para>
-
- <para>If Haddock sees something that looks like a URL (such as something starting with
- <literal>http://</literal> or <literal>ssh://</literal>) where the URL markup is valid,
- it will automatically make it a hyperlink.</para>
- </section>
-
- <section>
- <title>Links</title>
-
- <para>
- Haddock supports Markdown syntax for inline links. A link consists
- of a link text and a URL. The link text is enclosed in square
- brackets and followed by the URL enclosed in regular parentheses, for
- example:
- </para>
-
-<programlisting>
-[some link](http://example.com)
-</programlisting>
- <para>
- The link text is used as a descriptive text for the URL, if the
- output format supports it.
- </para>
- </section>
-
- <section>
- <title>Images</title>
- <para>
- Haddock supports Markdown syntax for inline images. This resembles
- the syntax for links, but starts with an exclamation mark. An
- example looks like this:
- </para>
-
-<programlisting>
-![image description](pathtoimage.png)
-</programlisting>
- <para>
- If the output format supports it, the image will be rendered inside
- the documentation. The image description is used as relpacement text
- and/or image title.
- </para>
- </section>
-
- <section>
- <title>Anchors</title>
-
- <para>Sometimes it is useful to be able to link to a point in
- the documentation which doesn't correspond to a particular
- entity. For that purpose, we allow <emphasis>anchors</emphasis> to be
- included in a documentation comment. The syntax is
- <literal>#<replaceable>label</replaceable>#</literal>, where
- <replaceable>label</replaceable> is the name of the anchor.
- An anchor is invisible in the generated documentation.</para>
-
- <para>To link to an anchor from elsewhere, use the syntax
- <literal>"<replaceable>module</replaceable>#<replaceable>label</replaceable>"</literal>
- where <replaceable>module</replaceable> is the module name
- containing the anchor, and <replaceable>label</replaceable> is
- the anchor label. The module does not have to be local, it can
- be imported via an interface. Please note that in Haddock
- versions 2.13.x and earlier, the syntax was
- <literal>"<replaceable>module</replaceable>\#<replaceable>label</replaceable>"</literal>.
- It is considered deprecated and will be removed in the future.</para>
- </section>
-
- <section>
- <title>Headings</title>
- <para>Headings inside of comment documentation are possible be preceding them with
- a number of <literal>=</literal>s. From 1 to 6 are accepted. Extra <literal>=</literal>s will
- be treated as belonging to the text of the heading. Note that it's up to the output format to decide
- how to render the different levels.
- </para>
-
-<programlisting>
--- |
--- = Heading level 1 with some /emphasis/
--- Something underneath the heading.
---
--- == /Subheading/
--- More content.
---
--- === Subsubheading
--- Even more content.
-</programlisting>
-
- <para>Note that while headings have to start on a new paragraph, we allow paragraph-level content to
- follow these immediately.
- </para>
-
-<programlisting>
--- |
--- = Heading level 1 with some __bold__
--- Something underneath the heading.
---
--- == /Subheading/
--- More content.
---
--- === Subsubheading
--- >>> examples are only allowed at the start of paragraphs
-</programlisting>
-
- <para>As of 2.15.1, there's experimental (read: subject to
- change or get removed) support for collapsible headers: simply
- wrap your existing header title in underscores, as per bold
- syntax. The collapsible section will stretch until the end of
- the comment or until a header of equal or smaller number of
- <literal>=</literal>s.</para>
-
-<programlisting>
--- |
--- === __Examples:__
--- >>> Some very long list of examples
---
--- ==== This still falls under the collapse
--- Some specialised examples
---
--- === This is does not go into the collapsable section.
--- More content.
-</programlisting>
-
- </section>
-
- <section>
- <title>Metadata</title>
- <para>Since Haddock 2.16.0, some support for embedding
- metadata in the comments has started to appear. The use of
- such data aims to standardise various community conventions in
- how such information is conveyed and to provide uniform
- rendering.
- </para>
-
- <section>
- <title>Since</title>
- <para><literal>@since</literal> annotation can be used to
- convey information about when the function was introduced or
- when it has changed in the way significant to the user.
- <literal>@since</literal> is a paragraph-level element.
- While multiple such annotations are not an error, only the
- one to appear in the comment last will be used.
- <literal>@since</literal> has to be followed with a version
- number, no further description is currently allowed. The
- meaning of this feature is subject to change in the future
- per user feedback.
- </para>
-
-<programlisting>
--- |
--- Some comment
---
--- @since 1.2.3
-</programlisting>
-
- </section>
-
- </section>
-
- </section>
- </chapter>
- <index/>
-</book>
diff --git a/doc/index.rst b/doc/index.rst
new file mode 100644
index 00000000..dc30c45f
--- /dev/null
+++ b/doc/index.rst
@@ -0,0 +1,21 @@
+Welcome to Haddock's documentation!
+===================================
+
+This is Haddock, a tool for automatically generating documentation from
+annotated Haskell source code.
+
+Contents:
+
+.. toctree::
+ :maxdepth: 2
+
+ intro
+ invoking
+ markup
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`search`
diff --git a/doc/intro.rst b/doc/intro.rst
new file mode 100644
index 00000000..fcdc67f1
--- /dev/null
+++ b/doc/intro.rst
@@ -0,0 +1,164 @@
+Introduction
+============
+
+This is Haddock, a tool for automatically generating documentation from
+annotated Haskell source code. Haddock was designed with several goals
+in mind:
+
+- When documenting APIs, it is desirable to keep the documentation
+ close to the actual interface or implementation of the API,
+ preferably in the same file, to reduce the risk that the two become
+ out of sync. Haddock therefore lets you write the documentation for
+ an entity (function, type, or class) next to the definition of the
+ entity in the source code.
+
+- There is a tremendous amount of useful API documentation that can be
+ extracted from just the bare source code, including types of exported
+ functions, definitions of data types and classes, and so on. Haddock
+ can therefore generate documentation from a set of straight Haskell
+ 98 modules, and the documentation will contain precisely the
+ interface that is available to a programmer using those modules.
+
+- Documentation annotations in the source code should be easy on the
+ eye when editing the source code itself, so as not to obscure the
+ code and to make reading and writing documentation annotations easy.
+ The easier it is to write documentation, the more likely the
+ programmer is to do it. Haddock therefore uses lightweight markup in
+ its annotations, taking several ideas from
+ `IDoc <http://www.cse.unsw.edu.au/~chak/haskell/idoc/>`__. In fact,
+ Haddock can understand IDoc-annotated source code.
+
+- The documentation should not expose any of the structure of the
+ implementation, or to put it another way, the implementer of the API
+ should be free to structure the implementation however he or she
+ wishes, without exposing any of that structure to the consumer. In
+ practical terms, this means that while an API may internally consist
+ of several Haskell modules, we often only want to expose a single
+ module to the user of the interface, where this single module just
+ re-exports the relevant parts of the implementation modules.
+
+ Haddock therefore understands the Haskell module system and can
+ generate documentation which hides not only non-exported entities
+ from the interface, but also the internal module structure of the
+ interface. A documentation annotation can still be placed next to the
+ implementation, and it will be propagated to the external module in
+ the generated documentation.
+
+- Being able to move around the documentation by following hyperlinks
+ is essential. Documentation generated by Haddock is therefore
+ littered with hyperlinks: every type and class name is a link to the
+ corresponding definition, and user-written documentation annotations
+ can contain identifiers which are linked automatically when the
+ documentation is generated.
+
+- We might want documentation in multiple formats - online and printed,
+ for example. Haddock comes with HTML, LaTeX, and Hoogle backends, and
+ it is structured in such a way that adding new backends is
+ straightforward.
+
+Obtaining Haddock
+-----------------
+
+Distributions (source & binary) of Haddock can be obtained from its `web
+site <http://www.haskell.org/haddock/>`__.
+
+Up-to-date sources can also be obtained from our public darcs
+repository. The Haddock sources are at
+``http://code.haskell.org/haddock``. See
+`darcs.net <http://www.darcs.net/>`__ for more information on the darcs
+version control utility.
+
+License
+-------
+
+The following license covers this documentation, and the Haddock source
+code, except where otherwise indicated.
+
+ Copyright 2002-2010, Simon Marlow. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS "AS IS" AND ANY
+ EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+ BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Contributors
+------------
+
+Haddock was originally written by Simon Marlow. Since it is an open
+source project, many people have contributed to its development over the
+years. Below is a list of contributors in alphabetical order that we
+hope is somewhat complete. If you think you are missing from this list,
+please contact us.
+
+- Ashley Yakeley
+- Benjamin Franksen
+- Brett Letner
+- Clemens Fruhwirth
+- Conal Elliott
+- David Waern
+- Duncan Coutts
+- George Pollard
+- George Russel
+- Hal Daume
+- Ian Lynagh
+- Isaac Dupree
+- Joachim Breitner
+- Krasimir Angelov
+- Lennart Augustsson
+- Luke Plant
+- Malcolm Wallace
+- Manuel Chakravarty
+- Mark Lentczner
+- Mark Shields
+- Mateusz Kowalczyk
+- Mike Thomas
+- Neil Mitchell
+- Oliver Brown
+- Roman Cheplyaka
+- Ross Paterson
+- Sigbjorn Finne
+- Simon Hengel
+- Simon Marlow
+- Simon Peyton-Jones
+- Stefan O'Rear
+- Sven Panne
+- Thomas Schilling
+- Wolfgang Jeltsch
+- Yitzchak Gale
+
+Acknowledgements
+----------------
+
+Several documentation systems provided the inspiration for Haddock, most
+notably:
+
+- `IDoc <http://www.cse.unsw.edu.au/~chak/haskell/idoc/>`__
+
+- `HDoc <http://www.fmi.uni-passau.de/~groessli/hdoc/>`__
+
+- `Doxygen <http://www.stack.nl/~dimitri/doxygen/>`__
+
+and probably several others I've forgotten.
+
+Thanks to the the members of haskelldoc@haskell.org,
+haddock@projects.haskell.org and everyone who contributed to the many
+libraries that Haddock makes use of.
diff --git a/doc/invoking.rst b/doc/invoking.rst
new file mode 100644
index 00000000..c69c9031
--- /dev/null
+++ b/doc/invoking.rst
@@ -0,0 +1,458 @@
+Invoking Haddock
+================
+
+Haddock is invoked from the command line, like so:
+
+.. code-block:: none
+
+ haddock [option ...] file ...
+
+Where each ``file`` is a filename containing a Haskell source module (.hs)
+or a Literate Haskell source module (.lhs) or just a module name.
+
+All the modules specified on the command line will be processed
+together. When one module refers to an entity in another module being
+processed, the documentation will link directly to that entity.
+
+Entities that cannot be found, for example because they are in a module
+that isn't being processed as part of the current batch, simply won't be
+hyperlinked in the generated documentation. Haddock will emit warnings
+listing all the identifiers it couldn't resolve.
+
+The modules should *not* be mutually recursive, as Haddock don't like
+swimming in circles.
+
+Note that while older version would fail on invalid markup, this is
+considered a bug in the new versions. If you ever get failed parsing
+message, please report it.
+
+You must also specify an option for the output format. Currently only
+the :option:`-h` option for HTML and the :option:`--hoogle` option for outputting
+Hoogle data are functional.
+
+The packaging tool
+`Cabal <http://www.haskell.org/ghc/docs/latest/html/Cabal/index.html>`__
+has Haddock support, and is often used instead of invoking Haddock
+directly.
+
+The following options are available:
+
+.. program:: haddock
+
+.. option:: -B <dir>
+
+ Tell GHC that that its lib directory is dir. Can be used to override
+ the default path.
+
+.. option:: -o <dir>
+ --odir=<dir>
+
+ Generate files into dir instead of the current directory.
+
+.. option:: -l <dir>
+ --lib=<dir>
+
+ Use Haddock auxiliary files (themes, javascript, etc...) in dir.
+
+.. option:: -i <file>
+ --read-interface=<file>
+ -i <docpath>,<file>
+ --read-interface=<docpath>,<file>
+ -i <docpath>,<srcpath>,<file>
+ --read-interface=<docpath>,<srcpath>,<file>
+
+ Read the interface file in file, which must have been produced by
+ running Haddock with the :option:`--dump-interface` option. The interface
+ describes a set of modules whose HTML documentation is located in
+ docpath (which may be a relative pathname). The docpath is optional,
+ and defaults to “.”. The srcpath is optional but has no default
+ value.
+
+ This option allows Haddock to produce separate sets of documentation
+ with hyperlinks between them. The docpath is used to direct
+ hyperlinks to point to the right files; so make sure you don't move
+ the HTML files later or these links will break. Using a relative
+ docpath means that a documentation subtree can still be moved around
+ without breaking links.
+
+ Similarly to docpath, srcpath is used generate cross-package
+ hyperlinks but within sources rendered with :option:`--hyperlinked-source`
+ option.
+
+ Multiple :option:`--read-interface` options may be given.
+
+.. option:: -D <file>
+ --dump-interface=<file>
+
+ Produce an interface file [1]_ in the file file. An interface file
+ contains information Haddock needs to produce more documentation
+ that refers to the modules currently being processed - see the
+ :option:`--read-interface` option for more details. The interface file is
+ in a binary format; don't try to read it.
+
+.. [1]
+ Haddock interface files are not the same as Haskell interface files,
+ I just couldn't think of a better name.
+
+.. option:: -h
+ --html
+
+ Generate documentation in HTML format. Several files will be
+ generated into the current directory (or the specified directory if
+ the :option:`-o` option is given), including the following:
+
+ ``module.html``; ``mini_module.html``
+ An HTML page for each module, and a "mini" page for each used
+ when viewing in frames.
+
+ ``index.html``
+ The top level page of the documentation: lists the modules
+ available, using indentation to represent the hierarchy if the
+ modules are hierarchical.
+
+ ``doc-index.html``; ``doc-index-X.html``
+ The alphabetic index, possibly split into multiple pages if big
+ enough.
+
+ ``frames.html``
+ The top level document when viewing in frames.
+
+ ``some.css``; ``etc...``
+ Files needed for the themes used. Specify your themes using the
+ :option:`--theme` option.
+
+ ``haddock-util.js``
+ Some JavaScript utilities used to implement some of the dynamic
+ features like collapsible sections, and switching to frames
+ view.
+
+.. option:: --latex
+
+ Generate documentation in LaTeX format. Several files will be
+ generated into the current directory (or the specified directory if
+ the :option:`-o` option is given), including the following:
+
+ ``package.tex``
+ The top-level LaTeX source file; to format the documentation
+ into PDF you might run something like this: ::
+
+ $ pdflatex package.tex
+
+ ``haddock.sty``
+ The default style. The file contains definitions for various
+ macros used in the LaTeX sources generated by Haddock; to change
+ the way the formatted output looks, you might want to override
+ these by specifying your own style with the :option:`--latex-style`
+ option.
+
+ ``module.tex``
+ The LaTeX documentation for each module.
+
+.. option:: --latex-style=<style>
+
+ This option lets you override the default style used by the LaTeX
+ generated by the :option:`--latex` option. Normally Haddock puts a
+ standard ``haddock.sty`` in the output directory, and includes the
+ command ``\usepackage{haddock}`` in the LaTeX source. If this option
+ is given, then ``haddock.sty`` is not generated, and the command is
+ instead ``\usepackage{style}``.
+
+.. option:: --hyperlinked-source
+
+ Generate hyperlinked source code (as HTML web page). All rendered
+ files will be put into ``src/`` subfolder of output directory.
+
+ Usually, this should be used in combination with :option:`--html` option -
+ generated documentation will then contain references to appropriate
+ code fragments. Previously, this behaviour could be achieved by
+ generating sources using external tool and specifying
+ :option:`--source-base`, :option:`--source-module`, :option:`--source-entity` and
+ related options. Note that these flags are ignored once
+ :option:`--hyperlinked-source` is set.
+
+ In order to make cross-package source hyperlinking possible,
+ appropriate source paths have to be set up when providing interface
+ files using :option:`--read-interface` option.
+
+.. option:: --source-css=<style>
+
+ Use custom CSS file for sources rendered by the
+ :option:`--hyperlinked-source` option. If no custom style file is
+ provided, Haddock will use default one.
+
+.. option:: -S, --docbook
+
+ Reserved for future use (output documentation in DocBook XML
+ format).
+
+.. option:: --source-base=<url>
+ --source-module=<url>
+ --source-entity=<url>
+ --source-entity-line=<url>
+
+ Include links to the source files in the generated documentation.
+ Use the :option:`--source-base` option to add a source code link in the
+ header bar of the contents and index pages. Use the
+ :option:`--source-module` to add a source code link in the header bar of
+ each module page. Use the :option:`--source-entity` option to add a source
+ code link next to the documentation for every value and type in each
+ module. :option:`--source-entity-line` is a flag that gets used for
+ entities that need to link to an exact source location rather than a
+ name, eg. since they were defined inside a Template Haskell splice.
+
+ In each case URL is the base URL where the source files can be
+ found. For the per-module and per-entity URLs, the following
+ substitutions are made within the string URL:
+
+ - The string ``%M`` or ``%{MODULE}`` is replaced by the module
+ name. Note that for the per-entity URLs this is the name of the
+ *exporting* module.
+
+ - The string ``%F`` or ``%{FILE}`` is replaced by the original
+ source file name. Note that for the per-entity URLs this is the
+ name of the *defining* module.
+
+ - The string ``%N`` or ``%{NAME}`` is replaced by the name of the
+ exported value or type. This is only valid for the
+ :option:`--source-entity` option.
+
+ - The string ``%K`` or ``%{KIND}`` is replaced by a flag indicating
+ whether the exported name is a value ``v`` or a type
+ ``t``. This is only valid for the :option:`--source-entity` option.
+
+ - The string ``%L`` or ``%{LINE}`` is replaced by the number of the
+ line where the exported value or type is defined. This is only
+ valid for the :option:`--source-entity` option.
+
+ - The string ``%%`` is replaced by ``%``.
+
+ For example, if your sources are online under some directory, you
+ would say ``haddock --source-base=url/ --source-module=url/%F``
+
+ If you have html versions of your sources online with anchors for
+ each type and function name, you would say
+ ``haddock --source-base=url/ --source-module=url/%M.html --source-entity=url/%M.html#%N``
+
+ For the ``%{MODULE}`` substitution you may want to replace the
+ ``.`` character in the module names with some other character
+ (some web servers are known to get confused by multiple ``.``
+ characters in a file name). To replace it with a character c use
+ ``%{MODULE/./c}``.
+
+ Similarly, for the ``%{FILE}`` substitution you may want to replace
+ the ``/`` character in the file names with some other character
+ (especially for links to colourised entity source code with a shared
+ css file). To replace it with a character c use ``%{FILE///c}``/
+
+ One example of a tool that can generate syntax-highlighted HTML from
+ your source code, complete with anchors suitable for use from
+ haddock, is
+ `hscolour <http://www.cs.york.ac.uk/fp/darcs/hscolour>`__.
+
+.. option:: -s <url>
+ --source=<url>
+
+ Deprecated aliases for :option:`--source-module`
+
+.. option:: --comments-base=<url>
+ --comments-module=<url>
+ --comments-entity=<url>
+
+ documentation. This feature would typically be used in conjunction
+ with a Wiki system.
+
+ Use the :option:`--comments-base` option to add a user comments link in
+ the header bar of the contents and index pages. Use the
+ :option:`--comments-module` to add a user comments link in the header bar
+ of each module page. Use the :option:`--comments-entity` option to add a
+ comments link next to the documentation for every value and type in
+ each module.
+
+ In each case URL is the base URL where the corresponding comments
+ page can be found. For the per-module and per-entity URLs the same
+ substitutions are made as with the :option:`--source-module` and
+ :option:`--source-entity` options above.
+
+ For example, if you want to link the contents page to a wiki page,
+ and every module to subpages, you would say
+ ``haddock --comments-base=url --comments-module=url/%M``
+
+ If your Wiki system doesn't like the ``.`` character in Haskell
+ module names, you can replace it with a different character. For
+ example to replace the ``.`` characters with ``_`` use
+ ``haddock --comments-base=url --comments-module=url/%{MODULE/./_}``.
+ Similarly, you can replace the ``/`` in a file name (may be useful for
+ entity comments, but probably not).
+
+.. option:: --theme=<path>
+
+ Specify a theme to be used for HTML (:option:`--html`) documentation. If
+ given multiple times then the pages will use the first theme given
+ by default, and have alternate style sheets for the others. The
+ reader can switch between themes with browsers that support
+ alternate style sheets, or with the "Style" menu that gets added
+ when the page is loaded. If no themes are specified, then just the
+ default built-in theme ("Ocean") is used.
+
+ The path parameter can be one of:
+
+ - A *directory*: The base name of the directory becomes the name of
+ the theme. The directory must contain exactly one ``some.css``
+ file. Other files, usually image files, will be copied, along
+ with the ``some.css`` file, into the generated output directory.
+
+ - A *CSS file*: The base name of the file becomes the name of the
+ theme.
+
+ - The *name* of a built-in theme ("Ocean" or "Classic").
+
+.. option:: --built-in-themes
+
+ Includes the built-in themes ("Ocean" and "Classic"). Can be
+ combined with :option:`--theme`. Note that order matters: The first
+ specified theme will be the default.
+
+.. option:: --use-unicode
+
+ Enable use of Unicode characters in HTML output.
+
+.. option:: -c <file>
+ --css=<file>
+
+ Deprecated aliases for :option:`--theme`
+
+.. option:: -p <file>
+ --prologue=<file>
+
+ Specify a file containing documentation which is placed on the main
+ contents page under the heading “Description”. The file is parsed as
+ a normal Haddock doc comment (but the comment markers are not
+ required).
+
+.. option:: -t <title>
+ --title=<title>
+
+ Use title as the page heading for each page in the
+ documentation.This will normally be the name of the library being
+ documented.
+
+ The title should be a plain string (no markup please!).
+
+.. option:: -q <mode>
+ --qual=<mode>
+
+ Specify how identifiers are qualified.
+
+ mode should be one of
+
+ - ``none`` (default): don't qualify any identifiers
+
+ - ``full``: always qualify identifiers completely
+
+ - ``local``: only qualify identifiers that are not part of the module
+
+ - ``relative``: like local, but strip name of the module from
+ qualifications of identifiers in submodules
+
+ Example: If you generate documentation for module A, then the
+ identifiers A.x, A.B.y and C.z are qualified as follows.
+
+ - none: x, y, z
+
+ - full: A.x, A.B.y, C.z
+
+ - local: x, A.B.y, C.z
+
+ - relative: x, B.y, C.z
+
+.. option:: -?
+ --help
+
+ Display help and exit.
+
+.. option:: -V
+ --version
+
+ Output version information and exit.
+
+.. option:: -v
+ --verbose
+
+ Increase verbosity. Currently this will cause Haddock to emit some
+ extra warnings, in particular about modules which were imported but
+ it had no information about (this is often quite normal; for example
+ when there is no information about the ``Prelude``).
+
+.. option:: --use-contents=<url>
+ --use-index=<url>
+
+ When generating HTML, do not generate an index. Instead, redirect
+ the Contents and/or Index link on each page to URL. This option is
+ intended for use in conjunction with :option:`--gen-contents` and/or
+ :option:`--gen-index` for generating a separate contents and/or index
+ covering multiple libraries.
+
+.. option:: --gen-contents
+ --gen-index
+
+ Generate an HTML contents and/or index containing entries pulled
+ from all the specified interfaces (interfaces are specified using
+ :option:`-i` or :option:`--read-interface`). This is used to generate a single
+ contents and/or index for multiple sets of Haddock documentation.
+
+.. option:: --ignore-all-exports
+
+ Causes Haddock to behave as if every module has the
+ ``ignore-exports`` attribute (:ref:`module-attrs`). This might be useful for
+ generating implementation documentation rather than interface
+ documentation, for example.
+
+.. option:: --hide <module>
+
+ Causes Haddock to behave as if module module has the ``hide``
+ attribute. (:ref:`module-attrs`).
+
+.. option:: --show-extensions <module>
+
+ Causes Haddock to behave as if module module has the
+ ``show-extensions`` attribute. (:ref:`module-attrs`).
+
+.. option:: --optghc=<option>
+
+ Pass option to GHC. Note that there is a double dash there, unlike
+ for GHC.
+
+.. option:: -w
+ --no-warnings
+
+ Turn off all warnings.
+
+.. option:: --compatible-interface-versions
+
+ Prints out space-separated versions of binary Haddock interface
+ files that this version is compatible with.
+
+.. option:: --no-tmp-comp-dir
+
+ Do not use a temporary directory for reading and writing compilation
+ output files (``.o``, ``.hi``, and stub files). Instead, use the
+ present directory or another directory that you have explicitly told
+ GHC to use via the :option:`--optghc` flag.
+
+ This flag can be used to avoid recompilation if compilation files
+ already exist. Compilation files are produced when Haddock has to
+ process modules that make use of Template Haskell, in which case
+ Haddock compiles the modules using the GHC API.
+
+.. option:: --print-missing-docs
+
+ Print extra information about any undocumented entities.
+
+Using literate or pre-processed source
+--------------------------------------
+
+Since Haddock uses GHC internally, both plain and literate Haskell
+sources are accepted without the need for the user to do anything. To
+use the C pre-processor, however, the user must pass the the :option:`-cpp`
+option to GHC using :option:`--optghc`.
+
diff --git a/doc/markup.rst b/doc/markup.rst
new file mode 100644
index 00000000..a2274ad6
--- /dev/null
+++ b/doc/markup.rst
@@ -0,0 +1,887 @@
+Documentation and Markup
+========================
+
+Haddock understands special documentation annotations in the Haskell
+source file and propagates these into the generated documentation. The
+annotations are purely optional: if there are no annotations, Haddock
+will just generate documentation that contains the type signatures, data
+type declarations, and class declarations exported by each of the
+modules being processed.
+
+Documenting a top-level declaration
+-----------------------------------
+
+The simplest example of a documentation annotation is for documenting
+any top-level declaration (function type signature, type declaration, or
+class declaration). For example, if the source file contains the
+following type signature: ::
+
+ square :: Int -> Int
+ square x = x * x
+
+Then we can document it like this: ::
+
+ -- |The 'square' function squares an integer.
+ square :: Int -> Int
+ square x = x * x
+
+The ``-- |`` syntax begins a documentation annotation, which applies
+to the *following* declaration in the source file. Note that the
+annotation is just a comment in Haskell — it will be ignored by the
+Haskell compiler.
+
+The declaration following a documentation annotation should be one of
+the following:
+
+- A type signature for a top-level function,
+
+- A ``data`` declaration,
+
+- A ``newtype`` declaration,
+
+- A ``type`` declaration
+
+- A ``class`` declaration,
+
+- A ``data family`` or ``type family`` declaration, or
+
+- A ``data instance`` or ``type instance`` declaration.
+
+If the annotation is followed by a different kind of declaration, it
+will probably be ignored by Haddock.
+
+Some people like to write their documentation *after* the declaration;
+this is possible in Haddock too: ::
+
+ square :: Int -> Int
+ -- ^The 'square' function squares an integer.
+ square x = x * x
+
+Note that Haddock doesn't contain a Haskell type system — if you don't
+write the type signature for a function, then Haddock can't tell what
+its type is and it won't be included in the documentation.
+
+Documentation annotations may span several lines; the annotation
+continues until the first non-comment line in the source file. For
+example: ::
+
+ -- |The 'square' function squares an integer.
+ -- It takes one argument, of type 'Int'.
+ square :: Int -> Int
+ square x = x * x
+
+You can also use Haskell's nested-comment style for documentation
+annotations, which is sometimes more convenient when using multi-line
+comments: ::
+
+ {-|
+ The 'square' function squares an integer.
+ It takes one argument, of type 'Int'.
+ -}
+ square :: Int -> Int
+ square x = x * x
+
+Documenting parts of a declaration
+----------------------------------
+
+In addition to documenting the whole declaration, in some cases we can
+also document individual parts of the declaration.
+
+Class methods
+~~~~~~~~~~~~~
+
+Class methods are documented in the same way as top level type
+signatures, by using either the ``-- |`` or ``-- ^`` annotations: ::
+
+ class C a where
+ -- | This is the documentation for the 'f' method
+ f :: a -> Int
+ -- | This is the documentation for the 'g' method
+ g :: Int -> a
+
+Constructors and record fields
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Constructors are documented like so: ::
+
+ data T a b
+ -- | This is the documentation for the 'C1' constructor
+ = C1 a b
+ -- | This is the documentation for the 'C2' constructor
+ | C2 a b
+
+or like this: ::
+
+ data T a b
+ = C1 a b -- ^ This is the documentation for the 'C1' constructor
+ | C2 a b -- ^ This is the documentation for the 'C2' constructor
+
+Record fields are documented using one of these styles: ::
+
+ data R a b =
+ C { -- | This is the documentation for the 'a' field
+ a :: a,
+ -- | This is the documentation for the 'b' field
+ b :: b
+ }
+
+ data R a b =
+ C { a :: a -- ^ This is the documentation for the 'a' field
+ , b :: b -- ^ This is the documentation for the 'b' field
+ }
+
+Alternative layout styles are generally accepted by Haddock - for
+example doc comments can appear before or after the comma in separated
+lists such as the list of record fields above.
+
+In case that more than one constructor exports a field with the same
+name, the documentation attached to the first occurence of the field
+will be used, even if a comment is not present. ::
+
+ data T a = A { someField :: a -- ^ Doc for someField of A
+ }
+ | B { someField :: a -- ^ Doc for someField of B
+ }
+
+In the above example, all occurences of ``someField`` in the
+documentation are going to be documented with
+``Doc for someField of A``. Note that Haddock versions 2.14.0 and before
+would join up documentation of each field and render the result. The
+reason for this seemingly weird behaviour is the fact that ``someField``
+is actually the same (partial) function.
+
+Function arguments
+~~~~~~~~~~~~~~~~~~
+
+Individual arguments to a function may be documented like this: ::
+
+ f :: Int -- ^ The 'Int' argument
+ -> Float -- ^ The 'Float' argument
+ -> IO () -- ^ The return value
+
+The module description
+----------------------
+
+A module itself may be documented with multiple fields that can then be
+displayed by the backend. In particular, the HTML backend displays all
+the fields it currently knows about. We first show the most complete
+module documentation example and then talk about the fields. ::
+
+ {-|
+ Module : W
+ Description : Short description
+ Copyright : (c) Some Guy, 2013
+ Someone Else, 2014
+ License : GPL-3
+ Maintainer : sample@email.com
+ Stability : experimental
+ Portability : POSIX
+
+ Here is a longer description of this module, containing some
+ commentary with @some markup@.
+ -}
+ module W where
+ ...
+
+The “Module” field should be clear. It currently doesn't affect the
+output of any of the backends but you might want to include it for human
+information or for any other tools that might be parsing these comments
+without the help of GHC.
+
+The “Description” field accepts some short text which outlines the
+general purpose of the module. If you're generating HTML, it will show
+up next to the module link in the module index.
+
+The “Copyright”, “License”, “Maintainer” and “Stability” fields should
+be obvious. An alternative spelling for the “License” field is accepted
+as “Licence” but the output will always prefer “License”.
+
+The “Portability” field has seen varied use by different library
+authors. Some people put down things like operating system constraints
+there while others put down which GHC extensions are used in the module.
+Note that you might want to consider using the “show-extensions” module
+flag for the latter.
+
+Finally, a module may contain a documentation comment before the module
+header, in which case this comment is interpreted by Haddock as an
+overall description of the module itself, and placed in a section
+entitled “Description” in the documentation for the module. All usual
+Haddock markup is valid in this comment.
+
+All fields are optional but they must be in order if they do appear.
+Multi-line fields are accepted but the consecutive lines have to start
+indented more than their label. If your label is indented one space as
+is often the case with “--” syntax, the consecutive lines have to start
+at two spaces at the very least. Please note that we do not enforce the
+format for any of the fields and the established formats are just a
+convention.
+
+Controlling the documentation structure
+---------------------------------------
+
+Haddock produces interface documentation that lists only the entities
+actually exported by the module. The documentation for a module will
+include *all* entities exported by that module, even if they were
+re-exported by another module. The only exception is when Haddock can't
+see the declaration for the re-exported entity, perhaps because it isn't
+part of the batch of modules currently being processed.
+
+However, to Haddock the export list has even more significance than just
+specifying the entities to be included in the documentation. It also
+specifies the *order* that entities will be listed in the generated
+documentation. This leaves the programmer free to implement functions in
+any order he/she pleases, and indeed in any *module* he/she pleases, but
+still specify the order that the functions should be documented in the
+export list. Indeed, many programmers already do this: the export list
+is often used as a kind of ad-hoc interface documentation, with
+headings, groups of functions, type signatures and declarations in
+comments.
+
+You can insert headings and sub-headings in the documentation by
+including annotations at the appropriate point in the export list. For
+example: ::
+
+ module Foo (
+ -- * Classes
+ C(..),
+ -- * Types
+ -- ** A data type
+ T,
+ -- ** A record
+ R,
+ -- * Some functions
+ f, g
+ ) where
+
+Headings are introduced with the syntax ``-- *``, ``-- **`` and so
+on, where the number of ``*``\ s indicates the level of the heading
+(section, sub-section, sub-sub-section, etc.).
+
+If you use section headings, then Haddock will generate a table of
+contents at the top of the module documentation for you.
+
+The alternative style of placing the commas at the beginning of each
+line is also supported. e.g.: ::
+
+ module Foo (
+ -- * Classes
+ , C(..)
+ -- * Types
+ -- ** A data type
+ , T
+ -- ** A record
+ , R
+ -- * Some functions
+ , f
+ , g
+ ) where
+
+Re-exporting an entire module
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Haskell allows you to re-export the entire contents of a module (or at
+least, everything currently in scope that was imported from a given
+module) by listing it in the export list: ::
+
+ module A (
+ module B,
+ module C
+ ) where
+
+What will the Haddock-generated documentation for this module look like?
+Well, it depends on how the modules ``B`` and ``C`` are imported. If
+they are imported wholly and without any ``hiding`` qualifiers, then the
+documentation will just contain a cross-reference to the documentation
+for ``B`` and ``C``. However, if the modules are not *completely*
+re-exported, for example: ::
+
+ module A (
+ module B,
+ module C
+ ) where
+
+ import B hiding (f)
+ import C (a, b)
+
+then Haddock behaves as if the set of entities re-exported from ``B``
+and ``C`` had been listed explicitly in the export list [2]_.
+
+.. [2]
+ NOTE: this is not fully implemented at the time of writing (version
+ 0.2). At the moment, Haddock always inserts a cross-reference.
+
+The exception to this rule is when the re-exported module is declared
+with the ``hide`` attribute (:ref:`module-attrs`), in which case the module is
+never cross-referenced; the contents are always expanded in place in the
+re-exporting module.
+
+Omitting the export list
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+If there is no export list in the module, how does Haddock generate
+documentation? Well, when the export list is omitted, e.g.: ::
+
+ module Foo where
+
+this is equivalent to an export list which mentions every entity defined
+at the top level in this module, and Haddock treats it in the same way.
+Furthermore, the generated documentation will retain the order in which
+entities are defined in the module. In this special case the module body
+may also include section headings (normally they would be ignored by
+Haddock). ::
+
+ module Foo where
+
+ -- * This heading will now appear before foo.
+
+ -- | Documentation for 'foo'.
+ foo :: Integer
+ foo = 5
+
+Named chunks of documentation
+-----------------------------
+
+Occasionally it is desirable to include a chunk of documentation which
+is not attached to any particular Haskell declaration. There are two
+ways to do this:
+
+- The documentation can be included in the export list directly, e.g.: ::
+
+ module Foo (
+ -- * A section heading
+
+ -- | Some documentation not attached to a particular Haskell entity
+ ...
+ ) where
+
+- If the documentation is large and placing it inline in the export
+ list might bloat the export list and obscure the structure, then it
+ can be given a name and placed out of line in the body of the module.
+ This is achieved with a special form of documentation annotation
+ “``-- $``”: ::
+
+ module Foo (
+ -- * A section heading
+
+ -- $doc
+ ...
+ ) where
+
+ -- $doc
+ -- Here is a large chunk of documentation which may be referred to by
+ -- the name $doc.
+
+ The documentation chunk is given a name, which is the sequence of
+ alphanumeric characters directly after the “``-- $``”, and it may be
+ referred to by the same name in the export list.
+
+Hyperlinking and re-exported entities
+-------------------------------------
+
+When Haddock renders a type in the generated documentation, it
+hyperlinks all the type constructors and class names in that type to
+their respective definitions. But for a given type constructor or class
+there may be several modules re-exporting it, and therefore several
+modules whose documentation contains the definition of that type or
+class (possibly including the current module!) so which one do we link
+to?
+
+Let's look at an example. Suppose we have three modules ``A``, ``B`` and
+``C`` defined as follows: ::
+
+ module A (T) where
+ data T a = C a
+
+ module B (f) where
+ import A
+ f :: T Int -> Int
+ f (C i) = i
+
+ module C (T, f) where
+ import A
+ import B
+
+Module ``A`` exports a datatype ``T``. Module ``B`` imports ``A`` and
+exports a function ``f`` whose type refers to ``T``. Also, both ``T``
+and ``f`` are re-exported from module C.
+
+Haddock takes the view that each entity has a *home* module; that is,
+the module that the library designer would most like to direct the user
+to, to find the documentation for that entity. So, Haddock makes all
+links to an entity point to the home module. The one exception is when
+the entity is also exported by the current module: Haddock makes a local
+link if it can.
+
+How is the home module for an entity determined? Haddock uses the
+following rules:
+
+- If modules A and B both export the entity, and module A imports
+ (directly or indirectly) module B, then B is preferred.
+
+- A module with the ``hide`` attribute is never chosen as the home.
+
+- A module with the ``not-home`` attribute is only chosen if there are
+ no other modules to choose.
+
+If multiple modules fit the criteria, then one is chosen at random. If
+no modules fit the criteria (because the candidates are all hidden),
+then Haddock will issue a warning for each reference to an entity
+without a home.
+
+In the example above, module ``A`` is chosen as the home for ``T``
+because it does not import any other module that exports ``T``. The link
+from ``f``'s type in module ``B`` will therefore point to ``A.T``.
+However, ``C`` also exports ``T`` and ``f``, and the link from ``f``'s
+type in ``C`` will therefore point locally to ``C.T``.
+
+.. _module-attrs:
+
+Module Attributes
+-----------------
+
+Certain attributes may be specified for each module which affects the
+way that Haddock generates documentation for that module. Attributes are
+specified in a comma-separated list in an
+``{-# OPTIONS_HADDOCK ... #-}`` pragma at the top of the module, either
+before or after the module description. For example: ::
+
+ {-# OPTIONS_HADDOCK hide, prune, ignore-exports #-}
+
+ -- |Module description
+ module A where
+ ...
+
+The options and module description can be in either order.
+
+The following attributes are currently understood by Haddock:
+
+``hide`` ``hide``
+ Omit this module from the generated documentation, but nevertheless
+ propagate definitions and documentation from within this module to
+ modules that re-export those definitions.
+
+``hide`` ``prune``
+ Omit definitions that have no documentation annotations from the
+ generated documentation.
+
+``ignore-exports`` ``ignore-exports``
+ Ignore the export list. Generate documentation as if the module had
+ no export list - i.e. all the top-level declarations are exported,
+ and section headings may be given in the body of the module.
+
+``not-home`` ``not-home``
+ Indicates that the current module should not be considered to be the
+ home module for each entity it exports, unless that entity is not
+ exported from any other module. See ? for more details.
+
+``show-extensions`` ``show-extensions``
+ Indicates that we should render the extensions used in this module
+ in the resulting documentation. This will only render if the output
+ format supports it. If Language is set, it will be shown as well and
+ all the extensions implied by it won't. All enabled extensions will
+ be rendered, including those implied by their more powerful
+ versions.
+
+Markup
+------
+
+Haddock understands certain textual cues inside documentation
+annotations that tell it how to render the documentation. The cues (or
+“markup”) have been designed to be simple and mnemonic in ASCII so that
+the programmer doesn't have to deal with heavyweight annotations when
+editing documentation comments.
+
+Paragraphs
+~~~~~~~~~~
+
+One or more blank lines separates two paragraphs in a documentation
+comment.
+
+Special characters
+~~~~~~~~~~~~~~~~~~
+
+The following characters have special meanings in documentation
+comments: ``\\``, ``/``, ``'``, ``\```, ``"``, ``@``, ``<``. To insert a
+literal occurrence of one of these special characters, precede it with a
+backslash (``\\``).
+
+Additionally, the character ``>`` has a special meaning at the beginning
+of a line, and the following characters have special meanings at the
+beginning of a paragraph: ``*``, ``-``. These characters can also be
+escaped using ``\\``.
+
+Furthermore, the character sequence ``>>>`` has a special meaning at the
+beginning of a line. To escape it, just prefix the characters in the
+sequence with a backslash.
+
+Character references
+~~~~~~~~~~~~~~~~~~~~
+
+Although Haskell source files may contain any character from the Unicode
+character set, the encoding of these characters as bytes varies between
+systems, so that only source files restricted to the ASCII character set
+are portable. Other characters may be specified in character and string
+literals using Haskell character escapes. To represent such characters
+in documentation comments, Haddock supports SGML-style numeric character
+references of the forms ``&#``\ D\ ``;`` and ``&#x``\ H\ ``;`` where D
+and H are decimal and hexadecimal numbers denoting a code position in
+Unicode (or ISO 10646). For example, the references ``&#x3BB;``,
+``&#x3bb;`` and ``&#955;`` all represent the lower-case letter lambda.
+
+Code Blocks
+~~~~~~~~~~~
+
+Displayed blocks of code are indicated by surrounding a paragraph with
+``@...@`` or by preceding each line of a paragraph with ``>`` (we often
+call these “bird tracks”). For example: ::
+
+ -- | This documentation includes two blocks of code:
+ --
+ -- @
+ -- f x = x + x
+ -- @
+ --
+ -- > g x = x * 42
+
+There is an important difference between the two forms of code block: in
+the bird-track form, the text to the right of the ‘\ ``>``\ ’ is
+interpreted literally, whereas the ``@...@`` form interprets markup as
+normal inside the code block.
+
+Examples
+~~~~~~~~
+
+Haddock has markup support for examples of interaction with a
+*read-eval-print loop (REPL)*. An example is introduced with ``>>>``
+followed by an expression followed by zero or more result lines: ::
+
+ -- | Two examples are given below:
+ --
+ -- >>> fib 10
+ -- 55
+ --
+ -- >>> putStrLn "foo\nbar"
+ -- foo
+ -- bar
+
+Result lines that only contain the string ``<BLANKLINE>`` are rendered
+as blank lines in the generated documentation.
+
+Properties
+~~~~~~~~~~
+
+Haddock provides markup for properties: ::
+
+ -- | Addition is commutative:
+ --
+ -- prop> a + b = b + a
+
+This allows third-party applications to extract and verify them.
+
+Hyperlinked Identifiers
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Referring to a Haskell identifier, whether it be a type, class,
+constructor, or function, is done by surrounding it with single quotes: ::
+
+ -- | This module defines the type 'T'.
+
+If there is an entity ``T`` in scope in the current module, then the
+documentation will hyperlink the reference in the text to the definition
+of ``T`` (if the output format supports hyperlinking, of course; in a
+printed format it might instead insert a page reference to the
+definition).
+
+It is also possible to refer to entities that are not in scope in the
+current module, by giving the full qualified name of the entity: ::
+
+ -- | The identifier 'M.T' is not in scope
+
+If ``M.T`` is not otherwise in scope, then Haddock will simply emit a
+link pointing to the entity ``T`` exported from module ``M`` (without
+checking to see whether either ``M`` or ``M.T`` exist).
+
+To make life easier for documentation writers, a quoted identifier is
+only interpreted as such if the quotes surround a lexically valid
+Haskell identifier. This means, for example, that it normally isn't
+necessary to escape the single quote when used as an apostrophe: ::
+
+ -- | I don't have to escape my apostrophes; great, isn't it?
+
+Nothing special is needed to hyperlink identifiers which contain
+apostrophes themselves: to hyperlink ``foo'`` one would simply type
+``'foo''``. To hyperlink identifiers written in infix form, simply put
+them in quotes as always: ``'`elem`'``.
+
+For compatibility with other systems, the following alternative form of
+markup is accepted [3]_: ```T'``.
+
+.. [3]
+ We chose not to use this as the primary markup for identifiers
+ because strictly speaking the ````` character should not be used as a
+ left quote, it is a grave accent.
+
+Emphasis, Bold and Monospaced text
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Emphasis may be added by surrounding text with ``/.../``. Other markup
+is valid inside emphasis. To have a forward slash inside of emphasis,
+just escape it: ``/fo\/o/``
+
+Bold (strong) text is indicated by surrounding it with ``__...__``.
+Other markup is valid inside bold. For example, ``__/foo/__`` will make
+the emphasised text ``foo`` bold. You don't have to escape a single
+underscore if you need it bold:
+``__This_text_with_underscores_is_bold__``.
+
+Monospaced (or typewriter) text is indicated by surrounding it with
+``@...@``. Other markup is valid inside a monospaced span: for example
+``@'f' a b@`` will hyperlink the identifier ``f`` inside the code
+fragment.
+
+Linking to modules
+~~~~~~~~~~~~~~~~~~
+
+Linking to a module is done by surrounding the module name with double
+quotes: ::
+
+ -- | This is a reference to the "Foo" module.
+
+A basic check is done on the syntax of the header name to ensure that it
+is valid before turning it into a link but unlike with identifiers,
+whether the module is in scope isn't checked and will always be turned
+into a link.
+
+Itemized and Enumerated lists
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+A bulleted item is represented by preceding a paragraph with either
+“``*``” or “``-``”. A sequence of bulleted paragraphs is rendered as an
+itemized list in the generated documentation, eg.: ::
+
+ -- | This is a bulleted list:
+ --
+ -- * first item
+ --
+ -- * second item
+
+An enumerated list is similar, except each paragraph must be preceded by
+either “``(n)``” or “``n.``” where n is any integer. e.g. ::
+
+ -- | This is an enumerated list:
+ --
+ -- (1) first item
+ --
+ -- 2. second item
+
+Lists of the same type don't have to be separated by a newline: ::
+
+ -- | This is an enumerated list:
+ --
+ -- (1) first item
+ -- 2. second item
+ --
+ -- This is a bulleted list:
+ --
+ -- * first item
+ -- * second item
+
+You can have more than one line of content in a list element: ::
+
+ -- |
+ -- * first item
+ -- and more content for the first item
+ -- * second item
+ -- and more content for the second item
+
+You can even nest whole paragraphs inside of list elements. The rules
+are 4 spaces for each indentation level. You're required to use a
+newline before such nested paragraph: ::
+
+ {-|
+ * Beginning of list
+ This belongs to the list above!
+
+ > nested
+ > bird
+ > tracks
+
+ * Next list
+ More of the indented list.
+
+ * Deeper
+
+ @
+ even code blocks work
+ @
+
+ * Deeper
+
+ 1. Even deeper!
+ 2. No newline separation even in indented lists.
+ -}
+
+The indentation of the first list item is honoured. That is, in the
+following example the items are on the same level. Before Haddock
+2.16.1, the second item would have been nested under the first item
+which was unexpected. ::
+
+ {-|
+ * foo
+
+ * bar
+ -}
+
+Definition lists
+~~~~~~~~~~~~~~~~
+
+Definition lists are written as follows: ::
+
+ -- | This is a definition list:
+ --
+ -- [@foo@]: The description of @foo@.
+ --
+ -- [@bar@]: The description of @bar@.
+
+To produce output something like this:
+
+``foo``
+ The description of ``foo``.
+
+``bar``
+ The description of ``bar``.
+
+Each paragraph should be preceded by the “definition term” enclosed in
+square brackets and followed by a colon. Other markup operators may be
+used freely within the definition term. You can escape ``]`` with a
+backslash as usual.
+
+Same rules about nesting and no newline separation as for bulleted and
+numbered lists apply.
+
+URLs
+~~~~
+
+A URL can be included in a documentation comment by surrounding it in
+angle brackets, for example: ::
+
+ <http://example.com>
+
+If the output format supports it, the URL will be turned into a
+hyperlink when rendered.
+
+If Haddock sees something that looks like a URL (such as something
+starting with ``http://`` or ``ssh://``) where the URL markup is valid,
+it will automatically make it a hyperlink.
+
+Links
+~~~~~
+
+Haddock supports Markdown syntax for inline links. A link consists of a
+link text and a URL. The link text is enclosed in square brackets and
+followed by the URL enclosed in regular parentheses, for example: ::
+
+ [some link](http://example.com)
+
+The link text is used as a descriptive text for the URL, if the output
+format supports it.
+
+Images
+~~~~~~
+
+Haddock supports Markdown syntax for inline images. This resembles the
+syntax for links, but starts with an exclamation mark. An example looks
+like this: ::
+
+ ![image description](pathtoimage.png)
+
+If the output format supports it, the image will be rendered inside the
+documentation. The image description is used as relpacement text and/or
+image title.
+
+Anchors
+~~~~~~~
+
+Sometimes it is useful to be able to link to a point in the
+documentation which doesn't correspond to a particular entity. For that
+purpose, we allow *anchors* to be included in a documentation comment.
+The syntax is ``#label#``, where label is the name of the anchor. An
+anchor is invisible in the generated documentation.
+
+To link to an anchor from elsewhere, use the syntax ``"module#label"``
+where module is the module name containing the anchor, and label is the
+anchor label. The module does not have to be local, it can be imported
+via an interface. Please note that in Haddock versions 2.13.x and
+earlier, the syntax was ``"module\#label"``. It is considered deprecated
+and will be removed in the future.
+
+Headings
+~~~~~~~~
+
+Headings inside of comment documentation are possible be preceding them
+with a number of ``=``\ s. From 1 to 6 are accepted. Extra ``=``\ s will
+be treated as belonging to the text of the heading. Note that it's up to
+the output format to decide how to render the different levels. ::
+
+ -- |
+ -- = Heading level 1 with some /emphasis/
+ -- Something underneath the heading.
+ --
+ -- == /Subheading/
+ -- More content.
+ --
+ -- === Subsubheading
+ -- Even more content.
+
+Note that while headings have to start on a new paragraph, we allow
+paragraph-level content to follow these immediately. ::
+
+ -- |
+ -- = Heading level 1 with some __bold__
+ -- Something underneath the heading.
+ --
+ -- == /Subheading/
+ -- More content.
+ --
+ -- === Subsubheading
+ -- >>> examples are only allowed at the start of paragraphs
+
+As of 2.15.1, there's experimental (read: subject to change or get
+removed) support for collapsible headers: simply wrap your existing
+header title in underscores, as per bold syntax. The collapsible section
+will stretch until the end of the comment or until a header of equal or
+smaller number of ``=``\ s. ::
+
+ -- |
+ -- === __Examples:__
+ -- >>> Some very long list of examples
+ --
+ -- ==== This still falls under the collapse
+ -- Some specialised examples
+ --
+ -- === This is does not go into the collapsable section.
+ -- More content.
+
+Metadata
+~~~~~~~~
+
+Since Haddock 2.16.0, some support for embedding metadata in the
+comments has started to appear. The use of such data aims to standardise
+various community conventions in how such information is conveyed and to
+provide uniform rendering.
+
+Since
+^^^^^
+
+``@since`` annotation can be used to convey information about when the
+function was introduced or when it has changed in the way significant to
+the user. ``@since`` is a paragraph-level element. While multiple such
+annotations are not an error, only the one to appear in the comment last
+will be used. ``@since`` has to be followed with a version number, no
+further description is currently allowed. The meaning of this feature is
+subject to change in the future per user feedback. ::
+
+ -- |
+ -- Some comment
+ --
+ -- @since 1.2.3
diff --git a/haddock-api/haddock-api.cabal b/haddock-api/haddock-api.cabal
index e1e7480f..50ebca0b 100644
--- a/haddock-api/haddock-api.cabal
+++ b/haddock-api/haddock-api.cabal
@@ -49,10 +49,10 @@ library
, xhtml >= 3000.2 && < 3000.3
, Cabal >= 1.10
, ghc-boot
- , ghc >= 7.10 && < 7.12
+ , ghc >= 8.0 && < 8.2
, ghc-paths
- , haddock-library == 1.2.*
+ , haddock-library == 1.4.*
hs-source-dirs:
src
@@ -115,9 +115,9 @@ test-suite spec
Haddock.Backends.Hyperlinker.ParserSpec
build-depends:
- base >= 4.3 && < 4.9
+ base
, containers
- , ghc >= 7.10 && < 7.12
+ , ghc
, hspec
, QuickCheck == 2.*
diff --git a/haddock-api/resources/html/Ocean.std-theme/ocean.css b/haddock-api/resources/html/Ocean.std-theme/ocean.css
index 139335ac..fcf23810 100644
--- a/haddock-api/resources/html/Ocean.std-theme/ocean.css
+++ b/haddock-api/resources/html/Ocean.std-theme/ocean.css
@@ -381,21 +381,16 @@ div#style-menu-holder {
#interface h5 + div.top {
margin-top: 1em;
}
-#interface p.src .link {
+#interface .src .selflink,
+#interface .src .link {
float: right;
color: #919191;
- border-left: 1px solid #919191;
background: #f0f0f0;
padding: 0 0.5em 0.2em;
- margin: 0 -0.5em 0 0.5em;
+ margin: 0 -0.5em 0 0;
}
-
-#interface td.src .link {
- float: right;
- color: #919191;
+#interface .src .selflink {
border-left: 1px solid #919191;
- background: #f0f0f0;
- padding: 0 0.5em 0.2em;
margin: 0 -0.5em 0 0.5em;
}
diff --git a/haddock-api/src/Haddock.hs b/haddock-api/src/Haddock.hs
index 72a6cc92..5e8f4a4a 100644
--- a/haddock-api/src/Haddock.hs
+++ b/haddock-api/src/Haddock.hs
@@ -248,6 +248,9 @@ render dflags flags qual ifaces installedIfaces extSrcMap = do
opt_latex_style = optLaTeXStyle flags
opt_source_css = optSourceCssFile flags
opt_mathjax = optMathjax flags
+ dflags'
+ | unicode = gopt_set dflags Opt_PrintUnicodeSyntax
+ | otherwise = dflags
visibleIfaces = [ i | i <- ifaces, OptHide `notElem` ifaceOptions i ]
@@ -287,24 +290,24 @@ render dflags flags qual ifaces installedIfaces extSrcMap = do
sourceUrls' = (srcBase, srcModule', pkgSrcMap', pkgSrcLMap')
libDir <- getHaddockLibDir flags
- prologue <- getPrologue dflags flags
+ prologue <- getPrologue dflags' flags
themes <- getThemes libDir flags >>= either bye return
when (Flag_GenIndex `elem` flags) $ do
ppHtmlIndex odir title pkgStr
- themes opt_contents_url sourceUrls' opt_wiki_urls
+ themes opt_mathjax opt_contents_url sourceUrls' opt_wiki_urls
allVisibleIfaces pretty
copyHtmlBits odir libDir themes
when (Flag_GenContents `elem` flags) $ do
- ppHtmlContents dflags odir title pkgStr
+ ppHtmlContents dflags' odir title pkgStr
themes opt_mathjax opt_index_url sourceUrls' opt_wiki_urls
allVisibleIfaces True prologue pretty
(makeContentsQual qual)
copyHtmlBits odir libDir themes
when (Flag_Html `elem` flags) $ do
- ppHtml dflags title pkgStr visibleIfaces odir
+ ppHtml dflags' title pkgStr visibleIfaces odir
prologue
themes opt_mathjax sourceUrls' opt_wiki_urls
opt_contents_url opt_index_url unicode qual
@@ -326,7 +329,7 @@ render dflags flags qual ifaces installedIfaces extSrcMap = do
Just (PackageName pkgNameFS, pkgVer) ->
let pkgNameStr | unpackFS pkgNameFS == "main" && title /= [] = title
| otherwise = unpackFS pkgNameFS
- in ppHoogle dflags pkgNameStr pkgVer title (fmap _doc prologue)
+ in ppHoogle dflags' pkgNameStr pkgVer title (fmap _doc prologue)
visibleIfaces odir
when (Flag_LaTeX `elem` flags) $ do
diff --git a/haddock-api/src/Haddock/Backends/Xhtml.hs b/haddock-api/src/Haddock/Backends/Xhtml.hs
index ebd53370..f7284062 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml.hs
@@ -90,11 +90,11 @@ ppHtml dflags doctitle maybe_package ifaces odir prologue
when (isNothing maybe_index_url) $
ppHtmlIndex odir doctitle maybe_package
- themes maybe_contents_url maybe_source_url maybe_wiki_url
+ themes maybe_mathjax_url maybe_contents_url maybe_source_url maybe_wiki_url
(map toInstalledIface visible_ifaces) debug
mapM_ (ppHtmlModule odir doctitle themes
- maybe_source_url maybe_wiki_url
+ maybe_mathjax_url maybe_source_url maybe_wiki_url
maybe_contents_url maybe_index_url unicode qual debug) visible_ifaces
@@ -269,7 +269,7 @@ ppHtmlContents dflags odir doctitle _maybe_package
writeFile (joinPath [odir, contentsHtmlFile]) (renderToString debug html)
-- XXX: think of a better place for this?
- ppHtmlContentsFrame odir doctitle themes ifaces debug
+ ppHtmlContentsFrame odir doctitle themes mathjax_url ifaces debug
ppPrologue :: Qualification -> String -> Maybe (MDoc GHC.RdrName) -> Html
@@ -342,12 +342,12 @@ flatModuleTree ifaces =
<< toHtml txt
-ppHtmlContentsFrame :: FilePath -> String -> Themes
+ppHtmlContentsFrame :: FilePath -> String -> Themes -> Maybe String
-> [InstalledInterface] -> Bool -> IO ()
-ppHtmlContentsFrame odir doctitle themes ifaces debug = do
+ppHtmlContentsFrame odir doctitle themes maybe_mathjax_url ifaces debug = do
let mods = flatModuleTree ifaces
html =
- headHtml doctitle Nothing themes Nothing +++
+ headHtml doctitle Nothing themes maybe_mathjax_url +++
miniBody << divModuleList <<
(sectionName << "Modules" +++
ulist << [ li ! [theclass "module"] << m | m <- mods ])
@@ -365,13 +365,14 @@ ppHtmlIndex :: FilePath
-> Maybe String
-> Themes
-> Maybe String
+ -> Maybe String
-> SourceURLs
-> WikiURLs
-> [InstalledInterface]
-> Bool
-> IO ()
ppHtmlIndex odir doctitle _maybe_package themes
- maybe_contents_url maybe_source_url maybe_wiki_url ifaces debug = do
+ maybe_mathjax_url maybe_contents_url maybe_source_url maybe_wiki_url ifaces debug = do
let html = indexPage split_indices Nothing
(if split_indices then [] else index)
@@ -387,7 +388,7 @@ ppHtmlIndex odir doctitle _maybe_package themes
where
indexPage showLetters ch items =
- headHtml (doctitle ++ " (" ++ indexName ch ++ ")") Nothing themes Nothing +++
+ headHtml (doctitle ++ " (" ++ indexName ch ++ ")") Nothing themes maybe_mathjax_url +++
bodyHtml doctitle Nothing
maybe_source_url maybe_wiki_url
maybe_contents_url Nothing << [
@@ -487,11 +488,11 @@ ppHtmlIndex odir doctitle _maybe_package themes
ppHtmlModule
:: FilePath -> String -> Themes
- -> SourceURLs -> WikiURLs
+ -> Maybe String -> SourceURLs -> WikiURLs
-> Maybe String -> Maybe String -> Bool -> QualOption
-> Bool -> Interface -> IO ()
ppHtmlModule odir doctitle themes
- maybe_source_url maybe_wiki_url
+ maybe_mathjax_url maybe_source_url maybe_wiki_url
maybe_contents_url maybe_index_url unicode qual debug iface = do
let
mdl = ifaceMod iface
@@ -499,7 +500,7 @@ ppHtmlModule odir doctitle themes
mdl_str = moduleString mdl
real_qual = makeModuleQual qual aliases mdl
html =
- headHtml mdl_str (Just $ "mini_" ++ moduleHtmlFile mdl) themes Nothing +++
+ headHtml mdl_str (Just $ "mini_" ++ moduleHtmlFile mdl) themes maybe_mathjax_url +++
bodyHtml doctitle (Just iface)
maybe_source_url maybe_wiki_url
maybe_contents_url maybe_index_url << [
@@ -509,14 +510,14 @@ ppHtmlModule odir doctitle themes
createDirectoryIfMissing True odir
writeFile (joinPath [odir, moduleHtmlFile mdl]) (renderToString debug html)
- ppHtmlModuleMiniSynopsis odir doctitle themes iface unicode real_qual debug
+ ppHtmlModuleMiniSynopsis odir doctitle themes maybe_mathjax_url iface unicode real_qual debug
ppHtmlModuleMiniSynopsis :: FilePath -> String -> Themes
- -> Interface -> Bool -> Qualification -> Bool -> IO ()
-ppHtmlModuleMiniSynopsis odir _doctitle themes iface unicode qual debug = do
+ -> Maybe String -> Interface -> Bool -> Qualification -> Bool -> IO ()
+ppHtmlModuleMiniSynopsis odir _doctitle themes maybe_mathjax_url iface unicode qual debug = do
let mdl = ifaceMod iface
html =
- headHtml (moduleString mdl) Nothing themes Nothing +++
+ headHtml (moduleString mdl) Nothing themes maybe_mathjax_url +++
miniBody <<
(divModuleHeader << sectionName << moduleString mdl +++
miniSynopsis mdl iface unicode qual)
diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
index 98df09fe..26aeaff8 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml/Layout.hs
@@ -43,12 +43,13 @@ import Haddock.Backends.Xhtml.DocMarkup
import Haddock.Backends.Xhtml.Types
import Haddock.Backends.Xhtml.Utils
import Haddock.Types
-import Haddock.Utils (makeAnchorId)
+import Haddock.Utils (makeAnchorId, nameAnchorId)
import qualified Data.Map as Map
import Text.XHtml hiding ( name, title, p, quote )
import FastString ( unpackFS )
import GHC
+import Name (nameOccName)
--------------------------------------------------------------------------------
-- * Sections of the document
@@ -256,9 +257,11 @@ topDeclElem lnks loc splice names html =
-- | Adds a source and wiki link at the right hand side of the box.
-- Name must be documented, otherwise we wouldn't get here.
links :: LinksInfo -> SrcSpan -> Bool -> DocName -> Html
-links ((_,_,sourceMap,lineMap), (_,_,maybe_wiki_url)) loc splice (Documented n mdl) =
- (srcLink <+> wikiLink)
- where srcLink = let nameUrl = Map.lookup origPkg sourceMap
+links ((_,_,sourceMap,lineMap), (_,_,maybe_wiki_url)) loc splice docName@(Documented n mdl) =
+ srcLink <+> wikiLink <+> (selfLink ! [theclass "selflink"] << "#")
+ where selfLink = linkedAnchor (nameAnchorId (nameOccName (getName docName)))
+
+ srcLink = let nameUrl = Map.lookup origPkg sourceMap
lineUrl = Map.lookup origPkg lineMap
mUrl | splice = lineUrl
-- Use the lineUrl as a backup
diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Names.hs b/haddock-api/src/Haddock/Backends/Xhtml/Names.hs
index c69710d1..5492178b 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml/Names.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml/Names.hs
@@ -120,11 +120,11 @@ ppBinderWith :: Notation -> Bool -> OccName -> Html
-- the documentation or is the actual definition; in the latter case, we also
-- set the 'id' and 'class' attributes.
ppBinderWith notation isRef n =
- linkedAnchor name ! attributes << ppBinder' notation n
+ makeAnchor << ppBinder' notation n
where
name = nameAnchorId n
- attributes | isRef = []
- | otherwise = [identifier name, theclass "def"]
+ makeAnchor | isRef = linkedAnchor name
+ | otherwise = namedAnchor name ! [theclass "def"]
ppBinder' :: Notation -> OccName -> Html
ppBinder' notation n = wrapInfix notation n $ ppOccName n
diff --git a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs
index 98ff4007..1d49807d 100644
--- a/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs
+++ b/haddock-api/src/Haddock/Backends/Xhtml/Utils.hs
@@ -195,7 +195,7 @@ dot = toHtml "."
-- | Generate a named anchor
namedAnchor :: String -> Html -> Html
-namedAnchor n = anchor ! [XHtml.name n]
+namedAnchor n = anchor ! [XHtml.identifier n]
linkedAnchor :: String -> Html -> Html
diff --git a/haddock-test/haddock-test.cabal b/haddock-test/haddock-test.cabal
index 0394da8f..2b75ea81 100644
--- a/haddock-test/haddock-test.cabal
+++ b/haddock-test/haddock-test.cabal
@@ -16,7 +16,7 @@ library
default-language: Haskell2010
ghc-options: -Wall
hs-source-dirs: src
- build-depends: base, directory, process, filepath, Cabal, xml, xhtml, syb
+ build-depends: base, bytestring, directory, process, filepath, Cabal, xml, xhtml, syb
exposed-modules:
Test.Haddock
diff --git a/haddock-test/src/Test/Haddock.hs b/haddock-test/src/Test/Haddock.hs
index e8a0ac8e..6041c77c 100644
--- a/haddock-test/src/Test/Haddock.hs
+++ b/haddock-test/src/Test/Haddock.hs
@@ -16,6 +16,7 @@ import System.Exit
import System.FilePath
import System.IO
import System.Process
+import qualified Data.ByteString.Char8 as BS
import Test.Haddock.Config
import Test.Haddock.Process
@@ -95,8 +96,8 @@ checkFile cfg file = do
hasRef <- doesFileExist $ refFile dcfg file
if hasRef
then do
- mout <- ccfgRead ccfg file <$> readFile (outFile dcfg file)
- mref <- ccfgRead ccfg file <$> readFile (refFile dcfg file)
+ mout <- readOut cfg file
+ mref <- readRef cfg file
return $ case (mout, mref) of
(Just out, Just ref)
| ccfgEqual ccfg out ref -> Pass
@@ -107,11 +108,34 @@ checkFile cfg file = do
ccfg = cfgCheckConfig cfg
dcfg = cfgDirConfig cfg
+-- We use ByteString here to ensure that no lazy I/O is performed.
+-- This way to ensure that the reference file isn't held open in
+-- case after `diffFile` (which is problematic if we need to rewrite
+-- the reference file in `maybeAcceptFile`)
+
+-- | Read the reference artifact for a test
+readRef :: Config c -> FilePath -> IO (Maybe c)
+readRef cfg file =
+ ccfgRead ccfg . BS.unpack
+ <$> BS.readFile (refFile dcfg file)
+ where
+ ccfg = cfgCheckConfig cfg
+ dcfg = cfgDirConfig cfg
+
+-- | Read (and clean) the test output artifact for a test
+readOut :: Config c -> FilePath -> IO (Maybe c)
+readOut cfg file =
+ fmap (ccfgClean ccfg file) . ccfgRead ccfg . BS.unpack
+ <$> BS.readFile (outFile dcfg file)
+ where
+ ccfg = cfgCheckConfig cfg
+ dcfg = cfgDirConfig cfg
+
diffFile :: Config c -> FilePath -> FilePath -> IO ()
diffFile cfg diff file = do
- Just out <- ccfgRead ccfg file <$> readFile (outFile dcfg file)
- Just ref <- ccfgRead ccfg file <$> readFile (refFile dcfg file)
+ Just out <- readOut cfg file
+ Just ref <- readRef cfg file
writeFile outFile' $ ccfgDump ccfg out
writeFile refFile' $ ccfgDump ccfg ref
@@ -130,10 +154,14 @@ diffFile cfg diff file = do
maybeAcceptFile :: Config c -> FilePath -> CheckResult -> IO CheckResult
-maybeAcceptFile cfg@(Config { cfgDirConfig = dcfg }) file result
+maybeAcceptFile cfg file result
| cfgAccept cfg && result `elem` [NoRef, Fail] = do
- copyFile' (outFile dcfg file) (refFile dcfg file)
+ Just out <- readOut cfg file
+ writeFile (refFile dcfg file) $ ccfgDump ccfg out
pure Accepted
+ where
+ dcfg = cfgDirConfig cfg
+ ccfg = cfgCheckConfig cfg
maybeAcceptFile _ _ result = pure result
diff --git a/haddock-test/src/Test/Haddock/Config.hs b/haddock-test/src/Test/Haddock/Config.hs
index cd878178..dea101d8 100644
--- a/haddock-test/src/Test/Haddock/Config.hs
+++ b/haddock-test/src/Test/Haddock/Config.hs
@@ -42,7 +42,11 @@ data TestPackage = TestPackage
data CheckConfig c = CheckConfig
- { ccfgRead :: String -> String -> Maybe c
+ { ccfgRead :: String -> Maybe c
+ -- ^ @f contents@ parses file contents @contents@ to
+ -- produce a thing to be compared.
+ , ccfgClean :: String -> c -> c
+ -- ^ @f fname x@ cleans @x@ to such that it can be compared
, ccfgDump :: c -> String
, ccfgEqual :: c -> c -> Bool
}
diff --git a/haddock.cabal b/haddock.cabal
index d2b1df3b..2c29aee3 100644
--- a/haddock.cabal
+++ b/haddock.cabal
@@ -123,7 +123,7 @@ executable haddock
Haddock.Syb
Haddock.Convert
else
- build-depends: haddock-api == 2.16.*
+ build-depends: haddock-api == 2.17.*
test-suite driver-test
type: exitcode-stdio-1.0
diff --git a/hoogle-test/Main.hs b/hoogle-test/Main.hs
index c8cda640..59a98fd0 100644
--- a/hoogle-test/Main.hs
+++ b/hoogle-test/Main.hs
@@ -9,7 +9,8 @@ import Test.Haddock
checkConfig :: CheckConfig String
checkConfig = CheckConfig
- { ccfgRead = \_ input -> Just input
+ { ccfgRead = Just
+ , ccfgClean = \_ -> id
, ccfgDump = id
, ccfgEqual = (==)
}
diff --git a/html-test/Main.hs b/html-test/Main.hs
index 3880fc3c..67dbeec6 100755
--- a/html-test/Main.hs
+++ b/html-test/Main.hs
@@ -2,6 +2,7 @@
import Data.Char
+import Data.Function (on)
import System.Environment
import System.FilePath
@@ -12,9 +13,10 @@ import Test.Haddock.Xhtml
checkConfig :: CheckConfig Xml
checkConfig = CheckConfig
- { ccfgRead = \mdl input -> stripIfRequired mdl <$> parseXml input
+ { ccfgRead = parseXml
+ , ccfgClean = stripIfRequired
, ccfgDump = dumpXml
- , ccfgEqual = (==)
+ , ccfgEqual = (==) `on` dumpXml
}
diff --git a/html-test/ref/A.html b/html-test/ref/A.html
index 56c04bc6..b58845e5 100644
--- a/html-test/ref/A.html
+++ b/html-test/ref/A.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>A</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_A.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,35 +49,35 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>A</a
- > = <a href=""
+ > = <a href="#"
>A</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>other</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>test2</a
- > :: <a href=""
+ > :: <a href="#"
>Bool</a
></li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>X</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>reExport</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -88,8 +89,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:A" class="def"
+ > <a id="t:A" class="def"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -97,29 +100,33 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A" class="def"
+ ><a id="v:A" class="def"
>A</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:other" class="def"
+ ><a id="v:other" class="def"
>other</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:test2" class="def"
+ ><a id="v:test2" class="def"
>test2</a
- > :: <a href=""
+ > :: <a href="#"
>Bool</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -130,8 +137,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:X" class="def"
+ > <a id="t:X" class="def"
>X</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -143,7 +152,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:X" class="def"
+ ><a id="v:X" class="def"
>X</a
></td
><td class="doc"
@@ -156,10 +165,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:reExport" class="def"
+ ><a id="v:reExport" class="def"
>reExport</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -169,11 +180,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_A.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/B.html b/html-test/ref/B.html
index 6176cbeb..d82cf2cc 100644
--- a/html-test/ref/B.html
+++ b/html-test/ref/B.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>B</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_B.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,27 +47,27 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- >module <a href=""
+ >module <a href="#"
>A</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>test</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>reExport</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>X</a
></li
></ul
@@ -76,16 +77,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
>Documentation</h1
><div class="top"
><p class="src"
- >module <a href=""
+ >module <a href="#"
>A</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:test" class="def"
+ ><a id="v:test" class="def"
>test</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -93,37 +96,39 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
>other</code
>.
These links should work: <code
- ><a href=""
+ ><a href="#"
>other</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>sortBy</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>test2</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>test2</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>fromMaybe</a
></code
>.
- Module link: <a href=""
+ Module link: <a href="#"
>Prelude</a
>.</p
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:reExport" class="def"
+ ><a id="v:reExport" class="def"
>reExport</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -134,8 +139,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:X" class="def"
+ > <a id="t:X" class="def"
>X</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -147,7 +154,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:X" class="def"
+ ><a id="v:X" class="def"
>X</a
></td
><td class="doc"
@@ -161,11 +168,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_B.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bold.html b/html-test/ref/Bold.html
index 904d2239..8325419c 100644
--- a/html-test/ref/Bold.html
+++ b/html-test/ref/Bold.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bold</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bold.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bold.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bold.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: t</li
+ > :: a</li
></ul
></div
><div id="interface"
@@ -56,9 +57,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bold.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: t</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Some <strong
@@ -89,11 +92,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bold.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug1.html b/html-test/ref/Bug1.html
index 28de3c64..4bedbb86 100644
--- a/html-test/ref/Bug1.html
+++ b/html-test/ref/Bug1.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug1</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug1.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug1.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,9 +49,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug1.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T</a
- > = <a href=""
+ > = <a href="#"
>T</a
></li
></ul
@@ -62,14 +63,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug1.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T" class="def"
+ > <a id="t:T" class="def"
>T</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>We should have different anchors for constructors and types/classes. This
hyperlink should point to the type constructor by default: <code
- ><a href=""
+ ><a href="#"
>T</a
></code
>.</p
@@ -80,11 +83,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug1.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:T" class="def"
+ ><a id="v:T" class="def"
>T</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -92,11 +95,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug1.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug195.html b/html-test/ref/Bug195.html
index 39816f32..c6af235a 100644
--- a/html-test/ref/Bug195.html
+++ b/html-test/ref/Bug195.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug195</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug195.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T" class="def"
+ > <a id="t:T" class="def"
>T</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -57,11 +60,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A" class="def"
+ ><a id="v:A" class="def"
>A</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -71,7 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:someField" class="def"
+ ><a id="v:someField" class="def"
>someField</a
> :: ()</dfn
><div class="doc"
@@ -81,7 +84,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:someOtherField" class="def"
+ ><a id="v:someOtherField" class="def"
>someOtherField</a
> :: ()</dfn
><div class="doc"
@@ -95,11 +98,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:B" class="def"
+ ><a id="v:B" class="def"
>B</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -109,7 +112,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:someField" class="def"
+ ><a id="v:someField" class="def"
>someField</a
> :: ()</dfn
><div class="doc"
@@ -119,7 +122,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:someOtherField" class="def"
+ ><a id="v:someOtherField" class="def"
>someOtherField</a
> :: ()</dfn
><div class="doc"
@@ -133,11 +136,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:C" class="def"
+ ><a id="v:C" class="def"
>C</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -147,7 +150,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:someField" class="def"
+ ><a id="v:someField" class="def"
>someField</a
> :: ()</dfn
><div class="doc"
@@ -157,7 +160,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:someOtherField" class="def"
+ ><a id="v:someOtherField" class="def"
>someOtherField</a
> :: ()</dfn
><div class="doc"
@@ -175,11 +178,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug195.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug2.html b/html-test/ref/Bug2.html
index c28fb609..9ae26bcd 100644
--- a/html-test/ref/Bug2.html
+++ b/html-test/ref/Bug2.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug2</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug2.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug2.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,20 +47,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug2.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:x" class="def"
+ ><a id="v:x" class="def"
>x</a
- > :: <a href=""
+ > :: <a href="#"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug201.html b/html-test/ref/Bug201.html
index 58bed8e8..c84b55b1 100644
--- a/html-test/ref/Bug201.html
+++ b/html-test/ref/Bug201.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug201</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug201.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug201.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug201.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
> :: ()</li
></ul
@@ -60,9 +61,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug201.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><pre
>This leading whitespace
@@ -72,9 +75,11 @@ should be dropped
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><pre
> But this one
@@ -92,11 +97,7 @@ because there's a space before closing @
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug253.html b/html-test/ref/Bug253.html
index d8e49bd4..36640332 100644
--- a/html-test/ref/Bug253.html
+++ b/html-test/ref/Bug253.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug253</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug253.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug253.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href="index.html"
+ ><a href="#"
>Contents</a
></li
><li
- ><a href="doc-index.html"
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -62,7 +63,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug253.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href="#v:foo"
+ ><a href="#"
>foo</a
> :: ()</li
></ul
@@ -72,15 +73,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug253.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="#v:foo" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>This link should generate <code
>#v</code
> anchor: <code
- ><a href="DoesNotExist.html#v:fakeFakeFake"
+ ><a href="#"
>fakeFakeFake</a
></code
></p
@@ -89,11 +92,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug253.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href="http://www.haskell.org/haddock/"
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug26.html b/html-test/ref/Bug26.html
index bdb51231..16251c0b 100644
--- a/html-test/ref/Bug26.html
+++ b/html-test/ref/Bug26.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug26</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug26.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -58,26 +59,22 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
> :: ()</li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>C</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >c_f</a
- > :: a</li
- ></ul
+ ></ul
></li
></ul
></div
@@ -86,9 +83,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Foo</p
@@ -100,9 +99,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Bar</p
@@ -112,10 +113,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:C" class="def"
+ > <a id="t:C" class="def"
>C</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -125,13 +128,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
>Since: 1.0</em
></p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >c_f</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:c_f" class="def"
+ ><a id="v:c_f" class="def"
>c_f</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
><em
@@ -149,9 +162,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
><span class="inst-left"
><span id="control.i:ic:C:C:1" class="instance expander" onclick="toggleSection('i:ic:C:C:1')"
></span
- > <a href=""
+ > <a href="#"
>C</a
> ()</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -169,9 +184,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>c_f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -183,11 +200,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug26.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug294.html b/html-test/ref/Bug294.html
index 59171bd6..c5f62da9 100644
--- a/html-test/ref/Bug294.html
+++ b/html-test/ref/Bug294.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug294</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug294.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:A" class="def"
+ > <a id="t:A" class="def"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs instances"
><p id="control.i:A" class="caption collapser" onclick="toggleSection('i:A')"
@@ -61,34 +64,38 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>DP</a
- > <a href=""
+ > <a href="#"
>A</a
- > = <a href="" id="v:ProblemCtor-39-" class="def"
+ > = <a id="v:ProblemCtor-39-" class="def"
>ProblemCtor'</a
- > <a href=""
+ > <a href="#"
>A</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>data</span
- > TP <a href=""
+ > TP <a href="#"
>A</a
- > = <a href="" id="v:ProblemCtor" class="def"
+ > = <a id="v:ProblemCtor" class="def"
>ProblemCtor</a
- > <a href=""
+ > <a href="#"
>A</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -96,41 +103,51 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:problemField" class="def"
+ ><a id="v:problemField" class="def"
>problemField</a
- > :: TO <a href=""
+ > :: TO <a href="#"
>A</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:problemField-39-" class="def"
+ ><a id="v:problemField-39-" class="def"
>problemField'</a
- > :: DO <a href=""
+ > :: DO <a href="#"
>A</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:gadtField" class="def"
+ ><a id="v:gadtField" class="def"
>gadtField</a
- > :: GADT <a href=""
+ > :: ({..} -&gt; GADT <a href="#"
>A</a
- > -&gt; <a href=""
+ >) -&gt; <a href="#"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
><span class="keyword"
>data family</span
- > <a href="" id="t:DP" class="def"
+ > <a id="t:DP" class="def"
>DP</a
- > t :: *</p
+ > t :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs instances"
><p id="control.i:DP" class="caption collapser" onclick="toggleSection('i:DP')"
>Instances</p
@@ -141,18 +158,20 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>DP</a
- > <a href=""
+ > <a href="#"
>A</a
- > = <a href="" id="v:ProblemCtor-39-" class="def"
+ > = <a id="v:ProblemCtor-39-" class="def"
>ProblemCtor'</a
- > <a href=""
+ > <a href="#"
>A</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -161,11 +180,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug294.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug298.html b/html-test/ref/Bug298.html
index 9e52da5e..6204819e 100644
--- a/html-test/ref/Bug298.html
+++ b/html-test/ref/Bug298.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug298</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug298.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug298.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,23 +47,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug298.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>(&lt;^&gt;)</a
> :: (a -&gt; a) -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>(&lt;^)</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>(^&gt;)</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>(&#8902;^)</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: ()</li
></ul
@@ -72,49 +73,59 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug298.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:-60--94--62-" class="def"
+ ><a id="v:-60--94--62-" class="def"
>(&lt;^&gt;)</a
- > :: (a -&gt; a) -&gt; a -&gt; a</p
+ > :: (a -&gt; a) -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-60--94-" class="def"
+ ><a id="v:-60--94-" class="def"
>(&lt;^)</a
- > :: a -&gt; a -&gt; a</p
+ > :: a -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-94--62-" class="def"
+ ><a id="v:-94--62-" class="def"
>(^&gt;)</a
- > :: a -&gt; a -&gt; a</p
+ > :: a -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-8902--94-" class="def"
+ ><a id="v:-8902--94-" class="def"
>(&#8902;^)</a
- > :: a -&gt; a -&gt; a</p
+ > :: a -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Links to <code
- ><a href=""
+ ><a href="#"
>&lt;^&gt;</a
></code
> and <code
- ><a href=""
+ ><a href="#"
>^&gt;</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>&lt;^</a
></code
> and <code
- ><a href=""
+ ><a href="#"
>&#8902;^</a
></code
>.</p
@@ -123,11 +134,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug298.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug3.html b/html-test/ref/Bug3.html
index 70e799be..eaa16f97 100644
--- a/html-test/ref/Bug3.html
+++ b/html-test/ref/Bug3.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug3</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug3.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug3.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug3.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,10 +59,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug3.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -72,11 +75,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug3.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug308.html b/html-test/ref/Bug308.html
index 23761bec..915aec4c 100644
--- a/html-test/ref/Bug308.html
+++ b/html-test/ref/Bug308.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug308</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug308.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug308.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
> :: ()</li
></ul
@@ -60,40 +61,44 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
- >start<a name="startAnchor"
+ >start<a id="startAnchor"
></a
- > followed by middle<a name="middleAnchor"
+ > followed by middle<a id="middleAnchor"
></a
- > and end<a name="endAnchor"
+ > and end<a id="endAnchor"
></a
></p
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
- >start <a href=""
+ >start <a href="#"
>Bug308</a
></p
><p
- >startOldStyle <a href=""
+ >startOldStyle <a href="#"
>Bug308</a
></p
><p
- >middle <a href=""
+ >middle <a href="#"
>Bug308</a
></p
><p
- >end <a href=""
+ >end <a href="#"
>Bug308</a
></p
></div
@@ -101,11 +106,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug308CrossModule.html b/html-test/ref/Bug308CrossModule.html
index fea4c4a5..b2ae2adf 100644
--- a/html-test/ref/Bug308CrossModule.html
+++ b/html-test/ref/Bug308CrossModule.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug308CrossModule</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug308CrossModule.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug308CrossModule.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,7 +47,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308CrossModule.html
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>h</a
> :: ()</li
></ul
@@ -56,24 +57,26 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308CrossModule.html
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:h" class="def"
+ ><a id="v:h" class="def"
>h</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
- >start <a href=""
+ >start <a href="#"
>Bug308</a
></p
><p
- >startOldStyle <a href=""
+ >startOldStyle <a href="#"
>Bug308</a
></p
><p
- >middle <a href=""
+ >middle <a href="#"
>Bug308</a
></p
><p
- >end <a href=""
+ >end <a href="#"
>Bug308</a
></p
></div
@@ -81,11 +84,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug308CrossModule.html
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug310.html b/html-test/ref/Bug310.html
index 62717c76..894e136f 100644
--- a/html-test/ref/Bug310.html
+++ b/html-test/ref/Bug310.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug310</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug310.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug310.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,9 +49,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug310.html");};
><li class="src short"
><span class="keyword"
>type family</span
- > a <a href=""
+ > a <a href="#"
>+</a
- > b :: <a href=""
+ > b :: <a href="#"
>Nat</a
></li
></ul
@@ -62,14 +63,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug310.html");};
><p class="src"
><span class="keyword"
>type family</span
- > a <a href="" id="t:-43-" class="def"
+ > a <a id="t:-43-" class="def"
>+</a
- > b :: <a href=""
+ > b :: <a href="#"
>Nat</a
> <span class="fixity"
>infixl 6</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -79,11 +82,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug310.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug313.html b/html-test/ref/Bug313.html
index 5477cf2c..131b3382 100644
--- a/html-test/ref/Bug313.html
+++ b/html-test/ref/Bug313.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug313</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug313.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -49,7 +50,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
>The first list is incorrectly numbered as 1. 2. 1.; the second example
renders fine (1. 2. 3.).</p
><p
- >See <a href=""
+ >See <a href="#"
>https://github.com/haskell/haddock/issues/313</a
></p
></div
@@ -59,11 +60,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>a</a
> :: a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>b</a
> :: a</li
></ul
@@ -73,9 +74,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:a" class="def"
+ ><a id="v:a" class="def"
>a</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Some text.</p
@@ -97,9 +100,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:b" class="def"
+ ><a id="v:b" class="def"
>b</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Some text.</p
@@ -122,11 +127,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug313.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug335.html b/html-test/ref/Bug335.html
index 6b3dc613..ea760d41 100644
--- a/html-test/ref/Bug335.html
+++ b/html-test/ref/Bug335.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug335</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug335.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
> :: ()</li
></ul
@@ -60,9 +61,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><h3 id="control.ch:f0" class="caption expander" onclick="toggleSection('ch:f0')"
>ExF:</h3
@@ -74,9 +77,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: ()</p
+ > :: () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><h3 id="control.ch:g0" class="caption expander" onclick="toggleSection('ch:g0')"
>ExG:</h3
@@ -115,11 +120,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug335.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug387.html b/html-test/ref/Bug387.html
index 80735916..25d6d989 100644
--- a/html-test/ref/Bug387.html
+++ b/html-test/ref/Bug387.html
@@ -1,34 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug387</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug387.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug387.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug387.html");};
>Contents</p
><ul
><li
- ><a href=""
+ ><a href="#"
>Section1</a
></li
><li
- ><a href=""
+ ><a href="#"
>Section2</a
></li
></ul
@@ -62,52 +61,52 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug387.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>test1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>test2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
></div
><div id="interface"
><h1 id="g:1"
- >Section1<a name="a:section1"
+ >Section1<a id="a:section1"
></a
></h1
><div class="top"
><p class="src"
- ><a href="" id="v:test1" class="def"
+ ><a id="v:test1" class="def"
>test1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><h1 id="g:2"
- >Section2<a name="a:section2"
+ >Section2<a id="a:section2"
></a
></h1
><div class="top"
><p class="src"
- ><a href="" id="v:test2" class="def"
+ ><a id="v:test2" class="def"
>test2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug4.html b/html-test/ref/Bug4.html
index f1fab937..22792fc1 100644
--- a/html-test/ref/Bug4.html
+++ b/html-test/ref/Bug4.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug4</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug4.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug4.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug4.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,10 +59,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug4.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug4.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug6.html b/html-test/ref/Bug6.html
index 407a031c..27e5251d 100644
--- a/html-test/ref/Bug6.html
+++ b/html-test/ref/Bug6.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug6</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug6.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,25 +57,25 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>A</a
- > = <a href=""
+ > = <a href="#"
>A</a
- > <a href=""
+ > <a href="#"
>Int</a
></li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>B</a
- > = <a href=""
+ > = <a href="#"
>B</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>b</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -82,21 +83,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>C</a
- > = <a href=""
+ > = <a href="#"
>C</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>c1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li
- ><a href=""
+ ><a href="#"
>c2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -104,23 +105,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>D</a
- > = <a href=""
+ > = <a href="#"
>D</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
></li
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>E</a
- > = <a href=""
+ > = <a href="#"
>E</a
- > <a href=""
+ > <a href="#"
>Int</a
></li
></ul
@@ -132,8 +133,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:A" class="def"
+ > <a id="t:A" class="def"
>A</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -145,13 +148,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A" class="def"
+ ><a id="v:A" class="def"
>A</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -160,8 +163,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:B" class="def"
+ > <a id="t:B" class="def"
>B</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -174,11 +179,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:B" class="def"
+ ><a id="v:B" class="def"
>B</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -188,13 +193,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:b" class="def"
+ ><a id="v:b" class="def"
>b</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -207,8 +212,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:C" class="def"
+ > <a id="t:C" class="def"
>C</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -220,11 +227,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:C" class="def"
+ ><a id="v:C" class="def"
>C</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -234,23 +241,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:c1" class="def"
+ ><a id="v:c1" class="def"
>c1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
><li
><dfn class="src"
- ><a href="" id="v:c2" class="def"
+ ><a id="v:c2" class="def"
>c2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -263,8 +270,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:D" class="def"
+ > <a id="t:D" class="def"
>D</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -277,15 +286,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:D" class="def"
+ ><a id="v:D" class="def"
>D</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -294,8 +303,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:E" class="def"
+ > <a id="t:E" class="def"
>E</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -307,13 +318,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:E" class="def"
+ ><a id="v:E" class="def"
>E</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -321,11 +332,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug6.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug7.html b/html-test/ref/Bug7.html
index f3bd4db6..fe9e4569 100644
--- a/html-test/ref/Bug7.html
+++ b/html-test/ref/Bug7.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug7</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug7.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -57,15 +58,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > = <a href=""
+ > = <a href="#"
>Foo</a
></li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>Bar</a
> x y</li
></ul
@@ -77,8 +78,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -90,11 +93,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Foo" class="def"
+ ><a id="v:Foo" class="def"
>Foo</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -108,13 +111,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><span class="inst-left"
><span id="control.i:id:Foo:Bar:1" class="instance expander" onclick="toggleSection('i:id:Foo:Bar:1')"
></span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>Foo</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -135,9 +140,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Bar" class="def"
+ > <a id="t:Bar" class="def"
>Bar</a
- > x y</p
+ > x y <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>The Bar class</p
@@ -152,13 +159,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
><span class="inst-left"
><span id="control.i:ic:Bar:Bar:1" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:1')"
></span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>Foo</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -178,11 +187,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug7.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug8.html b/html-test/ref/Bug8.html
index 6f0bc654..d32e0dbb 100644
--- a/html-test/ref/Bug8.html
+++ b/html-test/ref/Bug8.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug8</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug8.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug8.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug8.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Typ" class="def"
+ > <a id="t:Typ" class="def"
>Typ</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -57,85 +60,91 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug8.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Type" class="def"
+ ><a id="v:Type" class="def"
>Type</a
- > (<a href=""
+ > (<a href="#"
>Typ</a
- >, [<a href=""
+ >, [<a href="#"
>Typ</a
>])</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:TFree" class="def"
+ ><a id="v:TFree" class="def"
>TFree</a
- > (<a href=""
+ > (<a href="#"
>Typ</a
- >, [<a href=""
+ >, [<a href="#"
>Typ</a
>])</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-45--45--62-" class="def"
+ ><a id="v:-45--45--62-" class="def"
>(--&gt;)</a
- > :: t -&gt; t1 -&gt; <a href=""
+ > :: t -&gt; t1 -&gt; <a href="#"
>Typ</a
> <span class="fixity"
>infix 9</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-45--45--45--62-" class="def"
+ ><a id="v:-45--45--45--62-" class="def"
>(---&gt;)</a
- > :: <a href=""
+ > :: <a href="#"
>Foldable</a
- > t0 =&gt; t0 t -&gt; <a href=""
+ > t0 =&gt; t0 t -&gt; <a href="#"
>Typ</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Typ</a
> <span class="fixity"
>infix 9</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:s" class="def"
+ ><a id="v:s" class="def"
>s</a
- > :: t</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:t" class="def"
+ ><a id="v:t" class="def"
>t</a
- > :: t</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:main" class="def"
+ ><a id="v:main" class="def"
>main</a
- > :: t</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bug85.html b/html-test/ref/Bug85.html
index e1f0431f..90042380 100644
--- a/html-test/ref/Bug85.html
+++ b/html-test/ref/Bug85.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bug85</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bug85.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,10 +49,20 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
- > :: (* -&gt; *) -&gt; * -&gt; * <span class="keyword"
+ > :: (<a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ >) -&gt; <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -59,13 +70,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Bar" class="def"
+ ><a id="v:Bar" class="def"
>Bar</a
- > :: f x -&gt; <a href=""
+ > :: f x -&gt; <a href="#"
>Foo</a
> f (f x)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -74,10 +85,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Baz" class="def"
+ > <a id="t:Baz" class="def"
>Baz</a
- > :: * <span class="keyword"
+ > :: <a href="#"
+ >*</a
+ > <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -85,13 +100,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Baz-39-" class="def"
+ ><a id="v:Baz-39-" class="def"
>Baz'</a
- > :: <a href=""
+ > :: <a href="#"
>Baz</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -100,10 +115,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Qux" class="def"
+ > <a id="t:Qux" class="def"
>Qux</a
> <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -111,13 +128,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Quux" class="def"
+ ><a id="v:Quux" class="def"
>Quux</a
- > :: <a href=""
+ > :: <a href="#"
>Qux</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -125,11 +142,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bug85.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/BugDeprecated.html b/html-test/ref/BugDeprecated.html
index 28cf89be..a6da413e 100644
--- a/html-test/ref/BugDeprecated.html
+++ b/html-test/ref/BugDeprecated.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>BugDeprecated</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_BugDeprecated.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,39 +47,39 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>baz</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>one</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>two</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>three</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -88,10 +89,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -102,10 +105,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -116,10 +121,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:baz" class="def"
+ ><a id="v:baz" class="def"
>baz</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -130,10 +137,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:one" class="def"
+ ><a id="v:one" class="def"
>one</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -146,10 +155,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:two" class="def"
+ ><a id="v:two" class="def"
>two</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -160,10 +171,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:three" class="def"
+ ><a id="v:three" class="def"
>three</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -175,11 +188,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugDeprecated.html");}
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/BugExportHeadings.html b/html-test/ref/BugExportHeadings.html
index d6ae0359..e8fd6fa6 100644
--- a/html-test/ref/BugExportHeadings.html
+++ b/html-test/ref/BugExportHeadings.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>BugExportHeadings</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_BugExportHeadings.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,27 +47,27 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
>Contents</p
><ul
><li
- ><a href=""
+ ><a href="#"
>Foo</a
></li
><li
- ><a href=""
+ ><a href="#"
>Bar</a
></li
><li
- ><a href=""
+ ><a href="#"
>Baz</a
></li
><li
- ><a href=""
+ ><a href="#"
>One</a
></li
><li
- ><a href=""
+ ><a href="#"
>Two</a
></li
><li
- ><a href=""
+ ><a href="#"
>Three</a
></li
></ul
@@ -76,39 +77,39 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>baz</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>one</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>two</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>three</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -118,40 +119,48 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
>Foo</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><h1 id="g:2"
>Bar</h1
><div class="top"
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><h1 id="g:3"
>Baz</h1
><div class="top"
><p class="src"
- ><a href="" id="v:baz" class="def"
+ ><a id="v:baz" class="def"
>baz</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><h1 id="g:4"
>One</h1
><div class="top"
><p class="src"
- ><a href="" id="v:one" class="def"
+ ><a id="v:one" class="def"
>one</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -164,10 +173,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
>Two</h1
><div class="top"
><p class="src"
- ><a href="" id="v:two" class="def"
+ ><a id="v:two" class="def"
>two</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -180,10 +191,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
>Three</h1
><div class="top"
><p class="src"
- ><a href="" id="v:three" class="def"
+ ><a id="v:three" class="def"
>three</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -195,11 +208,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_BugExportHeadings.html
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Bugs.html b/html-test/ref/Bugs.html
index 78807f43..cf87d82f 100644
--- a/html-test/ref/Bugs.html
+++ b/html-test/ref/Bugs.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Bugs</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Bugs.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Bugs.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,22 +49,24 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bugs.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:A" class="def"
+ > <a id="t:A" class="def"
>A</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:A" class="def"
+ ><a id="v:A" class="def"
>A</a
- > a (a -&gt; <a href=""
+ > a (a -&gt; <a href="#"
>Int</a
>)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Bugs.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedClass.html b/html-test/ref/DeprecatedClass.html
index 7bf4b41c..43e1a255 100644
--- a/html-test/ref/DeprecatedClass.html
+++ b/html-test/ref/DeprecatedClass.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedClass</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedClass.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,30 +49,22 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>SomeClass</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >foo</a
- > :: a -&gt; a</li
- ></ul
+ ></ul
></li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>SomeOtherClass</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >bar</a
- > :: a -&gt; a</li
- ></ul
+ ></ul
></li
></ul
></div
@@ -82,10 +75,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:SomeClass" class="def"
+ > <a id="t:SomeClass" class="def"
>SomeClass</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -95,13 +90,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
><p
>some class</p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: a -&gt; a</p
+ > :: a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><div class="warning"
><p
@@ -116,10 +121,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:SomeOtherClass" class="def"
+ > <a id="t:SomeOtherClass" class="def"
>SomeOtherClass</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -127,13 +134,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
>Deprecated: SomeOtherClass</p
></div
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: a -&gt; a</p
+ > :: a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><div class="warning"
><p
@@ -145,11 +162,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedClass.html")
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedData.html b/html-test/ref/DeprecatedData.html
index 0a90e110..2e53f3ea 100644
--- a/html-test/ref/DeprecatedData.html
+++ b/html-test/ref/DeprecatedData.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedData</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedData.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,15 +49,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Foo</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>Foo</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>Bar</a
></li
></ul
@@ -64,15 +65,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>One</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>One</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>Two</a
></li
></ul
@@ -86,8 +87,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -103,7 +106,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><table
><tr
><td class="src"
- ><a href="" id="v:Foo" class="def"
+ ><a id="v:Foo" class="def"
>Foo</a
></td
><td class="doc"
@@ -117,7 +120,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
></tr
><tr
><td class="src"
- ><a href="" id="v:Bar" class="def"
+ ><a id="v:Bar" class="def"
>Bar</a
></td
><td class="doc"
@@ -136,8 +139,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:One" class="def"
+ > <a id="t:One" class="def"
>One</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -151,7 +156,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
><table
><tr
><td class="src"
- ><a href="" id="v:One" class="def"
+ ><a id="v:One" class="def"
>One</a
></td
><td class="doc"
@@ -163,7 +168,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
></tr
><tr
><td class="src"
- ><a href="" id="v:Two" class="def"
+ ><a id="v:Two" class="def"
>Two</a
></td
><td class="doc"
@@ -179,11 +184,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedData.html");
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedFunction.html b/html-test/ref/DeprecatedFunction.html
index b015bc95..8ac2218a 100644
--- a/html-test/ref/DeprecatedFunction.html
+++ b/html-test/ref/DeprecatedFunction.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedFunction</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedFunction.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,15 +47,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction.htm
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -64,16 +65,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction.htm
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
><p
>Deprecated: use <code
- ><a href=""
+ ><a href="#"
>bar</a
></code
> instead</p
@@ -84,10 +87,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction.htm
></div
><div class="top"
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -97,11 +102,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction.htm
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedFunction2.html b/html-test/ref/DeprecatedFunction2.html
index 46a509ee..545e3d72 100644
--- a/html-test/ref/DeprecatedFunction2.html
+++ b/html-test/ref/DeprecatedFunction2.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedFunction2</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction2.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedFunction2.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction2.ht
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,10 +59,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction2.ht
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -73,11 +76,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction2.ht
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedFunction3.html b/html-test/ref/DeprecatedFunction3.html
index 1749d024..fc20977e 100644
--- a/html-test/ref/DeprecatedFunction3.html
+++ b/html-test/ref/DeprecatedFunction3.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedFunction3</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction3.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedFunction3.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction3.ht
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
></li
></ul
@@ -58,10 +59,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction3.ht
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -73,11 +76,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedFunction3.ht
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedModule.html b/html-test/ref/DeprecatedModule.html
index 1dd3fb45..0811319d 100644
--- a/html-test/ref/DeprecatedModule.html
+++ b/html-test/ref/DeprecatedModule.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedModule</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedModule.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedModule.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -47,12 +48,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedModule.html"
><div class="doc"
><div class="warning"
><p
- >Deprecated: Use <a href=""
+ >Deprecated: Use <a href="#"
>Foo</a
> instead</p
></div
><p
- >Documentation for <a href=""
+ >Documentation for <a href="#"
>DeprecatedModule</a
>.</p
></div
@@ -62,20 +63,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedModule.html"
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedModule2.html b/html-test/ref/DeprecatedModule2.html
index dea6dc97..db453568 100644
--- a/html-test/ref/DeprecatedModule2.html
+++ b/html-test/ref/DeprecatedModule2.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedModule2</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedModule2.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedModule2.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,20 +57,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedModule2.html
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedNewtype.html b/html-test/ref/DeprecatedNewtype.html
index c521ec33..3af56b1b 100644
--- a/html-test/ref/DeprecatedNewtype.html
+++ b/html-test/ref/DeprecatedNewtype.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedNewtype</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedNewtype.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,21 +49,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>SomeNewType</a
- > = <a href=""
+ > = <a href="#"
>SomeNewTypeConst</a
- > <a href=""
+ > <a href="#"
>String</a
></li
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>SomeOtherNewType</a
- > = <a href=""
+ > = <a href="#"
>SomeOtherNewTypeConst</a
- > <a href=""
+ > <a href="#"
>String</a
></li
></ul
@@ -74,8 +75,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:SomeNewType" class="def"
+ > <a id="t:SomeNewType" class="def"
>SomeNewType</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -91,9 +94,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
><table
><tr
><td class="src"
- ><a href="" id="v:SomeNewTypeConst" class="def"
+ ><a id="v:SomeNewTypeConst" class="def"
>SomeNewTypeConst</a
- > <a href=""
+ > <a href="#"
>String</a
></td
><td class="doc"
@@ -112,8 +115,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:SomeOtherNewType" class="def"
+ > <a id="t:SomeOtherNewType" class="def"
>SomeOtherNewType</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -127,9 +132,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
><table
><tr
><td class="src"
- ><a href="" id="v:SomeOtherNewTypeConst" class="def"
+ ><a id="v:SomeOtherNewTypeConst" class="def"
>SomeOtherNewTypeConst</a
- > <a href=""
+ > <a href="#"
>String</a
></td
><td class="doc"
@@ -145,11 +150,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedNewtype.html
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedReExport.html b/html-test/ref/DeprecatedReExport.html
index f73c2996..595ae4ca 100644
--- a/html-test/ref/DeprecatedReExport.html
+++ b/html-test/ref/DeprecatedReExport.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedReExport</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedReExport.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.htm
>Contents</p
><ul
><li
- ><a href=""
+ ><a href="#"
>Re-exported from an other module</a
></li
><li
- ><a href=""
+ ><a href="#"
>Re-exported from an other package</a
></li
></ul
@@ -72,9 +73,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.htm
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -84,16 +85,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.htm
>Re-exported from an other module</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
><p
>Deprecated: use <code
- ><a href=""
+ ><a href="#"
>bar</a
></code
> instead</p
@@ -106,7 +109,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.htm
>Re-exported from an other package</h1
><div class="doc"
><p
- >Not yet working, see <a href=""
+ >Not yet working, see <a href="#"
>http://trac.haskell.org/haddock/ticket/223</a
>
, isEmptyChan</p
@@ -114,11 +117,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedReExport.htm
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedRecord.html b/html-test/ref/DeprecatedRecord.html
index 5991b7dc..82da6d30 100644
--- a/html-test/ref/DeprecatedRecord.html
+++ b/html-test/ref/DeprecatedRecord.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedRecord</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedRecord.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,21 +49,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > = <a href=""
+ > = <a href="#"
>Foo</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>fooName</a
- > :: <a href=""
+ > :: <a href="#"
>String</a
></li
><li
- ><a href=""
+ ><a href="#"
>fooValue</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -76,8 +77,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -89,11 +92,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
><table
><tr
><td class="src"
- ><a href="" id="v:Foo" class="def"
+ ><a id="v:Foo" class="def"
>Foo</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -103,9 +106,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
><ul
><li
><dfn class="src"
- ><a href="" id="v:fooName" class="def"
+ ><a id="v:fooName" class="def"
>fooName</a
- > :: <a href=""
+ > :: <a href="#"
>String</a
></dfn
><div class="doc"
@@ -115,9 +118,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
></li
><li
><dfn class="src"
- ><a href="" id="v:fooValue" class="def"
+ ><a id="v:fooValue" class="def"
>fooValue</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
@@ -139,11 +142,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedRecord.html"
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedTypeFamily.html b/html-test/ref/DeprecatedTypeFamily.html
index 175c1b25..c31eae53 100644
--- a/html-test/ref/DeprecatedTypeFamily.html
+++ b/html-test/ref/DeprecatedTypeFamily.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedTypeFamily</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeFamily.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedTypeFamily.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,15 +49,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeFamily.h
><li class="src short"
><span class="keyword"
>data family</span
- > <a href=""
+ > <a href="#"
>SomeTypeFamily</a
- > k :: * -&gt; *</li
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ ></li
><li class="src short"
><span class="keyword"
>data family</span
- > <a href=""
+ > <a href="#"
>SomeOtherTypeFamily</a
- > k :: * -&gt; *</li
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ ></li
></ul
></div
><div id="interface"
@@ -66,9 +75,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeFamily.h
><p class="src"
><span class="keyword"
>data family</span
- > <a href="" id="t:SomeTypeFamily" class="def"
+ > <a id="t:SomeTypeFamily" class="def"
>SomeTypeFamily</a
- > k :: * -&gt; *</p
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><div class="warning"
><p
@@ -82,9 +97,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeFamily.h
><p class="src"
><span class="keyword"
>data family</span
- > <a href="" id="t:SomeOtherTypeFamily" class="def"
+ > <a id="t:SomeOtherTypeFamily" class="def"
>SomeOtherTypeFamily</a
- > k :: * -&gt; *</p
+ > k :: <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><div class="warning"
><p
@@ -95,11 +116,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeFamily.h
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/DeprecatedTypeSynonym.html b/html-test/ref/DeprecatedTypeSynonym.html
index 0f986624..df0050ed 100644
--- a/html-test/ref/DeprecatedTypeSynonym.html
+++ b/html-test/ref/DeprecatedTypeSynonym.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>DeprecatedTypeSynonym</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeSynonym.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_DeprecatedTypeSynonym.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,17 +49,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeSynonym.
><li class="src short"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>TypeSyn</a
- > = <a href=""
+ > = <a href="#"
>String</a
></li
><li class="src short"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>OtherTypeSyn</a
- > = <a href=""
+ > = <a href="#"
>String</a
></li
></ul
@@ -70,10 +71,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeSynonym.
><p class="src"
><span class="keyword"
>type</span
- > <a href="" id="t:TypeSyn" class="def"
+ > <a id="t:TypeSyn" class="def"
>TypeSyn</a
- > = <a href=""
+ > = <a href="#"
>String</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -88,10 +91,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeSynonym.
><p class="src"
><span class="keyword"
>type</span
- > <a href="" id="t:OtherTypeSyn" class="def"
+ > <a id="t:OtherTypeSyn" class="def"
>OtherTypeSyn</a
- > = <a href=""
+ > = <a href="#"
>String</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><div class="warning"
@@ -103,11 +108,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_DeprecatedTypeSynonym.
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Examples.html b/html-test/ref/Examples.html
index 57c359df..e885928b 100644
--- a/html-test/ref/Examples.html
+++ b/html-test/ref/Examples.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Examples</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Examples.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Examples.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Examples.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>fib</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Integer</a
></li
></ul
@@ -60,17 +61,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Examples.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:fib" class="def"
+ ><a id="v:fib" class="def"
>fib</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>Fibonacci number of given <code
- ><a href=""
+ ><a href="#"
>Integer</a
></code
>.</p
@@ -164,11 +167,7 @@ bar
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Extensions.html b/html-test/ref/Extensions.html
index 780466b8..554bab12 100644
--- a/html-test/ref/Extensions.html
+++ b/html-test/ref/Extensions.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Extensions</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Extensions.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Extensions.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -58,7 +59,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Extensions.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foobar</a
> :: t</li
></ul
@@ -68,9 +69,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Extensions.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foobar" class="def"
+ ><a id="v:foobar" class="def"
>foobar</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Bar</p
@@ -79,11 +82,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Extensions.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/FunArgs.html b/html-test/ref/FunArgs.html
index d889b611..d1ee154a 100644
--- a/html-test/ref/FunArgs.html
+++ b/html-test/ref/FunArgs.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>FunArgs</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_FunArgs.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,8 +47,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -55,15 +58,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
><table
><tr
><td class="src"
- >:: <a href=""
+ >:: <a href="#"
>Ord</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- >=&gt; <a href=""
+ >=&gt; <a href="#"
>Int</a
></td
><td class="doc"
@@ -81,7 +84,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>Bool</a
></td
><td class="doc"
@@ -110,8 +113,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -154,8 +159,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:h" class="def"
+ ><a id="v:h" class="def"
>h</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -198,8 +205,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:i" class="def"
+ ><a id="v:i" class="def"
>i</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -209,13 +218,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
><td class="src"
>:: <span class="keyword"
>forall</span
- > (b :: <a href=""
- >()</a
- >). (d ~ <a href=""
+ > (b :: ()). d ~ <a href="#"
>()</a
- >)</td
+ ></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
@@ -238,8 +245,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:j" class="def"
+ ><a id="v:j" class="def"
>j</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -249,9 +258,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
><td class="src"
>:: <span class="keyword"
>forall</span
- > (a :: <a href=""
- >()</a
- >). proxy a</td
+ > (a :: ()). proxy a</td
><td class="doc"
><p
>First argument</p
@@ -271,11 +278,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/GADTRecords.html b/html-test/ref/GADTRecords.html
index b5b60d0f..7cec535c 100644
--- a/html-test/ref/GADTRecords.html
+++ b/html-test/ref/GADTRecords.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>GADTRecords</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_GADTRecords.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,55 +49,41 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>H1</a
> a b <span class="keyword"
>where</span
><ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>C1</a
- > :: <a href=""
+ > :: <a href="#"
>H1</a
> a b</li
><li
- ><a href=""
+ ><a href="#"
>C2</a
- > :: <a href=""
+ > :: <a href="#"
>Ord</a
- > a =&gt; [a] -&gt; <a href=""
+ > a =&gt; [a] -&gt; <a href="#"
>H1</a
> a a</li
><li
- ><a href=""
+ ><a href="#"
>C3</a
- > :: { <ul class="subs"
- ><li
- ><a href=""
- >field</a
- > :: <a href=""
- >Int</a
- ></li
- ></ul
- > } -&gt; <a href=""
+ > :: {..} -&gt; <a href="#"
>H1</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
></li
><li
- ><a href=""
+ ><a href="#"
>C4</a
- > :: { <ul class="subs"
- ><li
- ><a href=""
- >field2</a
- > :: a</li
- ></ul
- > } -&gt; <a href=""
+ > :: {..} -&gt; <a href="#"
>H1</a
- > <a href=""
+ > <a href="#"
>Int</a
> a</li
></ul
@@ -110,10 +97,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:H1" class="def"
+ > <a id="t:H1" class="def"
>H1</a
> a b <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -125,41 +114,39 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:C1" class="def"
+ ><a id="v:C1" class="def"
>C1</a
- > :: <a href=""
+ > :: <a href="#"
>H1</a
> a b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:C2" class="def"
+ ><a id="v:C2" class="def"
>C2</a
- > :: <a href=""
+ > :: <a href="#"
>Ord</a
- > a =&gt; [a] -&gt; <a href=""
+ > a =&gt; [a] -&gt; <a href="#"
>H1</a
> a a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:C3" class="def"
+ ><a id="v:C3" class="def"
>C3</a
- > :: <a href=""
- >Int</a
- > -&gt; <a href=""
+ > :: {..} -&gt; <a href="#"
>H1</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -169,9 +156,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:field" class="def"
+ ><a id="v:field" class="def"
>field</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
@@ -185,15 +172,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:C4" class="def"
+ ><a id="v:C4" class="def"
>C4</a
- > :: a -&gt; <a href=""
+ > :: {..} -&gt; <a href="#"
>H1</a
- > <a href=""
+ > <a href="#"
>Int</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -203,7 +190,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:field2" class="def"
+ ><a id="v:field2" class="def"
>field2</a
> :: a</dfn
><div class="doc"
@@ -221,11 +208,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Hash.html b/html-test/ref/Hash.html
index 6e15a771..85c61f62 100644
--- a/html-test/ref/Hash.html
+++ b/html-test/ref/Hash.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Hash</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Hash.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,13 +47,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
>Contents</p
><ul
><li
- ><a href=""
+ ><a href="#"
>The <code
>HashTable</code
> type</a
><ul
><li
- ><a href=""
+ ><a href="#"
>Operations on <code
>HashTable</code
>s</a
@@ -60,7 +61,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
></ul
></li
><li
- ><a href=""
+ ><a href="#"
>The <code
>Hash</code
> class</a
@@ -83,58 +84,52 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>HashTable</a
> key val</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>new</a
- > :: (<a href=""
+ > :: (<a href="#"
>Eq</a
- > key, <a href=""
+ > key, <a href="#"
>Hash</a
- > key) =&gt; <a href=""
+ > key) =&gt; <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>IO</a
- > (<a href=""
+ > (<a href="#"
>HashTable</a
> key val)</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>insert</a
- > :: (<a href=""
+ > :: (<a href="#"
>Eq</a
- > key, <a href=""
+ > key, <a href="#"
>Hash</a
- > key) =&gt; key -&gt; val -&gt; <a href=""
+ > key) =&gt; key -&gt; val -&gt; <a href="#"
>IO</a
> ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>lookup</a
- > :: <a href=""
+ > :: <a href="#"
>Hash</a
- > key =&gt; key -&gt; <a href=""
+ > key =&gt; key -&gt; <a href="#"
>IO</a
- > (<a href=""
+ > (<a href="#"
>Maybe</a
> val)</li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>Hash</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >hash</a
- > :: a -&gt; <a href=""
- >Int</a
- ></li
- ></ul
+ ></ul
></li
></ul
></div
@@ -147,9 +142,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:HashTable" class="def"
+ > <a id="t:HashTable" class="def"
>HashTable</a
- > key val</p
+ > key val <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A hash table with keys of type <code
@@ -160,7 +157,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
The type <code
>key</code
> should be an instance of <code
- ><a href=""
+ ><a href="#"
>Eq</a
></code
>.</p
@@ -172,19 +169,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
>s</h2
><div class="top"
><p class="src"
- ><a href="" id="v:new" class="def"
+ ><a id="v:new" class="def"
>new</a
- > :: (<a href=""
+ > :: (<a href="#"
>Eq</a
- > key, <a href=""
+ > key, <a href="#"
>Hash</a
- > key) =&gt; <a href=""
+ > key) =&gt; <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>IO</a
- > (<a href=""
+ > (<a href="#"
>HashTable</a
- > key val)</p
+ > key val) <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Builds a new hash table with a given size</p
@@ -192,15 +191,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:insert" class="def"
+ ><a id="v:insert" class="def"
>insert</a
- > :: (<a href=""
+ > :: (<a href="#"
>Eq</a
- > key, <a href=""
+ > key, <a href="#"
>Hash</a
- > key) =&gt; key -&gt; val -&gt; <a href=""
+ > key) =&gt; key -&gt; val -&gt; <a href="#"
>IO</a
- > ()</p
+ > () <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Inserts a new element into the hash table</p
@@ -208,26 +209,28 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:lookup" class="def"
+ ><a id="v:lookup" class="def"
>lookup</a
- > :: <a href=""
+ > :: <a href="#"
>Hash</a
- > key =&gt; key -&gt; <a href=""
+ > key =&gt; key -&gt; <a href="#"
>IO</a
- > (<a href=""
+ > (<a href="#"
>Maybe</a
- > val)</p
+ > val) <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Looks up a key in the hash table, returns <code
><code
- ><a href=""
+ ><a href="#"
>Just</a
></code
> val</code
> if the key
was found, or <code
- ><a href=""
+ ><a href="#"
>Nothing</a
></code
> otherwise.</p
@@ -241,30 +244,42 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Hash" class="def"
+ > <a id="t:Hash" class="def"
>Hash</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>A class of types which can be hashed.</p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >hash</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:hash" class="def"
+ ><a id="v:hash" class="def"
>hash</a
- > :: a -&gt; <a href=""
+ > :: a -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>hashes the value of type <code
>a</code
> into an <code
- ><a href=""
+ ><a href="#"
>Int</a
></code
></p
@@ -280,14 +295,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><span class="inst-left"
><span id="control.i:ic:Hash:Hash:1" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:1')"
></span
- > <a href=""
+ > <a href="#"
>Hash</a
- > <a href=""
+ > <a href="#"
>Float</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -296,12 +313,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>hash</a
- > :: <a href=""
+ > :: <a href="#"
>Float</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -312,14 +331,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><span class="inst-left"
><span id="control.i:ic:Hash:Hash:2" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:2')"
></span
- > <a href=""
+ > <a href="#"
>Hash</a
- > <a href=""
+ > <a href="#"
>Int</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -328,12 +349,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>hash</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -344,16 +367,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><span class="inst-left"
><span id="control.i:ic:Hash:Hash:3" class="instance expander" onclick="toggleSection('i:ic:Hash:Hash:3')"
></span
- > (<a href=""
+ > (<a href="#"
>Hash</a
- > a, <a href=""
+ > a, <a href="#"
>Hash</a
- > b) =&gt; <a href=""
+ > b) =&gt; <a href="#"
>Hash</a
> (a, b)</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -362,10 +387,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>hash</a
- > :: (a, b) -&gt; <a href=""
+ > :: (a, b) -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -378,11 +405,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hash.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/HiddenInstances.html b/html-test/ref/HiddenInstances.html
index 3eb94df8..90cb1c3b 100644
--- a/html-test/ref/HiddenInstances.html
+++ b/html-test/ref/HiddenInstances.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>HiddenInstances</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_HiddenInstances.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,13 +49,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>VisibleClass</a
> a</li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>VisibleData</a
></li
></ul
@@ -66,9 +67,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:VisibleClass" class="def"
+ > <a id="t:VisibleClass" class="def"
>VisibleClass</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Should be visible</p
@@ -83,11 +86,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><span class="inst-left"
><span id="control.i:ic:VisibleClass:VisibleClass:1" class="instance expander" onclick="toggleSection('i:ic:VisibleClass:VisibleClass:1')"
></span
- > <a href=""
+ > <a href="#"
>VisibleClass</a
- > <a href=""
+ > <a href="#"
>Int</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -105,11 +110,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><span class="inst-left"
><span id="control.i:ic:VisibleClass:VisibleClass:2" class="instance expander" onclick="toggleSection('i:ic:VisibleClass:VisibleClass:2')"
></span
- > <a href=""
+ > <a href="#"
>VisibleClass</a
- > <a href=""
+ > <a href="#"
>VisibleData</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -130,8 +137,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:VisibleData" class="def"
+ > <a id="t:VisibleData" class="def"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -147,11 +156,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><span class="inst-left"
><span id="control.i:id:VisibleData:Num:1" class="instance expander" onclick="toggleSection('i:id:VisibleData:Num:1')"
></span
- > <a href=""
+ > <a href="#"
>Num</a
- > <a href=""
+ > <a href="#"
>VisibleData</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -165,66 +176,80 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>(+)</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(-)</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(*)</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>negate</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>abs</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>signum</a
- > :: <a href=""
+ > :: <a href="#"
>VisibleData</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>fromInteger</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>VisibleData</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -235,11 +260,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
><span class="inst-left"
><span id="control.i:id:VisibleData:VisibleClass:2" class="instance expander" onclick="toggleSection('i:id:VisibleData:VisibleClass:2')"
></span
- > <a href=""
+ > <a href="#"
>VisibleClass</a
- > <a href=""
+ > <a href="#"
>VisibleData</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -259,11 +286,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstances.html")
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/HiddenInstancesB.html b/html-test/ref/HiddenInstancesB.html
index 8a1eb968..fc8824fa 100644
--- a/html-test/ref/HiddenInstancesB.html
+++ b/html-test/ref/HiddenInstancesB.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>HiddenInstancesB</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_HiddenInstancesB.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,13 +49,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>Foo</a
> a</li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bar</a
></li
></ul
@@ -66,9 +67,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Should be visible</p
@@ -83,11 +86,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
><span class="inst-left"
><span id="control.i:ic:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:1')"
></span
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>Bar</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -108,8 +113,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Bar" class="def"
+ > <a id="t:Bar" class="def"
>Bar</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -125,11 +132,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
><span class="inst-left"
><span id="control.i:id:Bar:Foo:1" class="instance expander" onclick="toggleSection('i:id:Bar:Foo:1')"
></span
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>Bar</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -149,11 +158,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_HiddenInstancesB.html"
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Hyperlinks.html b/html-test/ref/Hyperlinks.html
index b5547e50..bb19f4bc 100644
--- a/html-test/ref/Hyperlinks.html
+++ b/html-test/ref/Hyperlinks.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Hyperlinks</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Hyperlinks.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Hyperlinks.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hyperlinks.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,18 +59,20 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hyperlinks.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
- >A plain URL: <a href=""
+ >A plain URL: <a href="#"
>http://example.com/</a
></p
><p
- >A URL with a label: <a href=""
+ >A URL with a label: <a href="#"
>some link</a
></p
></div
@@ -77,11 +80,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Hyperlinks.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/IgnoreExports.html b/html-test/ref/IgnoreExports.html
index 6591f0d3..746a3aa5 100644
--- a/html-test/ref/IgnoreExports.html
+++ b/html-test/ref/IgnoreExports.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>IgnoreExports</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_IgnoreExports.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_IgnoreExports.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,15 +47,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_IgnoreExports.html");}
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -64,10 +65,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_IgnoreExports.html");}
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -76,10 +79,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_IgnoreExports.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -89,11 +94,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_IgnoreExports.html");}
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/ImplicitParams.html b/html-test/ref/ImplicitParams.html
index c81f484b..95128b9d 100644
--- a/html-test/ref/ImplicitParams.html
+++ b/html-test/ref/ImplicitParams.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>ImplicitParams</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_ImplicitParams.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_ImplicitParams.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_ImplicitParams.html");
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:X" class="def"
+ > <a id="t:X" class="def"
>X</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -57,55 +60,57 @@ window.onload = function () {pageLoad();setSynopsis("mini_ImplicitParams.html");
><table
><tr
><td class="src"
- ><a href="" id="v:X" class="def"
+ ><a id="v:X" class="def"
>X</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:c" class="def"
+ ><a id="v:c" class="def"
>c</a
- > :: (?x :: <a href=""
+ > :: (?x :: <a href="#"
>X</a
- >) =&gt; <a href=""
+ >) =&gt; <a href="#"
>X</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:d" class="def"
+ ><a id="v:d" class="def"
>d</a
- > :: (?x :: <a href=""
+ > :: (?x :: <a href="#"
>X</a
- >, ?y :: <a href=""
+ >, ?y :: <a href="#"
>X</a
- >) =&gt; (<a href=""
+ >) =&gt; (<a href="#"
>X</a
- >, <a href=""
+ >, <a href="#"
>X</a
- >)</p
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: ((?x :: <a href=""
+ > :: ((?x :: <a href="#"
>X</a
- >) =&gt; a) -&gt; a</p
+ >) =&gt; a) -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Instances.html b/html-test/ref/Instances.html
new file mode 100644
index 00000000..e3a2cb78
--- /dev/null
+++ b/html-test/ref/Instances.html
@@ -0,0 +1,1938 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><title
+ >Instances</title
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
+ /><script src="haddock-util.js" type="text/javascript"
+ ></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
+ ><script type="text/javascript"
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Instances.html&quot;);};
+//
+</script
+ ></head
+ ><body
+ ><div id="package-header"
+ ><ul class="links" id="page-menu"
+ ><li
+ ><a href="#"
+ >Contents</a
+ ></li
+ ><li
+ ><a href="#"
+ >Index</a
+ ></li
+ ></ul
+ ><p class="caption empty"
+ ></p
+ ></div
+ ><div id="content"
+ ><div id="module-header"
+ ><table class="info"
+ ><tr
+ ><th
+ >Safe Haskell</th
+ ><td
+ >Safe</td
+ ></tr
+ ></table
+ ><p class="caption"
+ >Instances</p
+ ></div
+ ><div id="interface"
+ ><h1
+ >Documentation</h1
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >newtype</span
+ > a <a id="t:-60--126--126-" class="def"
+ >&lt;~~</a
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs constructors"
+ ><p class="caption"
+ >Constructors</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><a id="v:Xyzzy" class="def"
+ >Xyzzy</a
+ > (b -&gt; (a, a))</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ></table
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:-60--126--126-" class="caption collapser" onclick="toggleSection('i:-60--126--126-')"
+ >Instances</p
+ ><div id="section.i:-60--126--126-" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:id:-60--126--126-:Foo:1" class="instance expander" onclick="toggleSection('i:id:-60--126--126-:Foo:1')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >(&lt;~~)</a
+ > a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:id:-60--126--126-:Foo:1" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: (a <a href="#"
+ >&lt;~~</a
+ > <a href="#"
+ >Int</a
+ >) -&gt; a -&gt; a <a href="#"
+ >&lt;~~</a
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: (a <a href="#"
+ >&lt;~~</a
+ > (a <a href="#"
+ >&lt;~~</a
+ > a)) -&gt; <a href="#"
+ >Int</a
+ > -&gt; a <a href="#"
+ >&lt;~~</a
+ > (a <a href="#"
+ >&lt;~~</a
+ > <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >class</span
+ > <a id="t:Foo" class="def"
+ >Foo</a
+ > f <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a id="v:foo" class="def"
+ >foo</a
+ > :: f <a href="#"
+ >Int</a
+ > -&gt; a -&gt; f a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a id="v:foo-39-" class="def"
+ >foo'</a
+ > :: f (f a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; f (f <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:Foo" class="caption collapser" onclick="toggleSection('i:Foo')"
+ >Instances</p
+ ><div id="section.i:Foo" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:1" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:1')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > []</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:1" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: [<a href="#"
+ >Int</a
+ >] -&gt; a -&gt; [a] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: [[a]] -&gt; <a href="#"
+ >Int</a
+ > -&gt; [[<a href="#"
+ >Int</a
+ >]] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:2" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:2')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > <a href="#"
+ >Maybe</a
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:2" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Int</a
+ > -&gt; a -&gt; <a href="#"
+ >Maybe</a
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:3" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:3')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > ((-&gt;) a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:3" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: (a -&gt; <a href="#"
+ >Int</a
+ >) -&gt; a -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: (a -&gt; a -&gt; a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; a -&gt; a -&gt; <a href="#"
+ >Int</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:4" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:4')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >Either</a
+ > a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:4" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: <a href="#"
+ >Either</a
+ > a <a href="#"
+ >Int</a
+ > -&gt; a -&gt; <a href="#"
+ >Either</a
+ > a a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: <a href="#"
+ >Either</a
+ > a (<a href="#"
+ >Either</a
+ > a a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >Either</a
+ > a (<a href="#"
+ >Either</a
+ > a <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:5" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:5')"
+ ></span
+ > (<a href="#"
+ >Eq</a
+ > a, <a href="#"
+ >Foo</a
+ > f) =&gt; <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >(,)</a
+ > (f a))</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:5" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: (f a, <a href="#"
+ >Int</a
+ >) -&gt; a -&gt; (f a, a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: (f a, (f a, a)) -&gt; <a href="#"
+ >Int</a
+ > -&gt; (f a, (f a, <a href="#"
+ >Int</a
+ >)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:6" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:6')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >(&lt;~~)</a
+ > a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:6" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: (a <a href="#"
+ >&lt;~~</a
+ > <a href="#"
+ >Int</a
+ >) -&gt; a -&gt; a <a href="#"
+ >&lt;~~</a
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: (a <a href="#"
+ >&lt;~~</a
+ > (a <a href="#"
+ >&lt;~~</a
+ > a)) -&gt; <a href="#"
+ >Int</a
+ > -&gt; a <a href="#"
+ >&lt;~~</a
+ > (a <a href="#"
+ >&lt;~~</a
+ > <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:7" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:7')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >(,,)</a
+ > a a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:7" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: (a, a, <a href="#"
+ >Int</a
+ >) -&gt; a -&gt; (a, a, a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: (a, a, (a, a, a)) -&gt; <a href="#"
+ >Int</a
+ > -&gt; (a, a, (a, a, <a href="#"
+ >Int</a
+ >)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Foo:Foo:8" class="instance expander" onclick="toggleSection('i:ic:Foo:Foo:8')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >Quux</a
+ > a b)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Foo:Foo:8" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: <a href="#"
+ >Quux</a
+ > a b <a href="#"
+ >Int</a
+ > -&gt; a -&gt; <a href="#"
+ >Quux</a
+ > a b a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: <a href="#"
+ >Quux</a
+ > a b (<a href="#"
+ >Quux</a
+ > a b a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >Quux</a
+ > a b (<a href="#"
+ >Quux</a
+ > a b <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >class</span
+ > <a href="#"
+ >Foo</a
+ > f =&gt; <a id="t:Bar" class="def"
+ >Bar</a
+ > f a <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a id="v:bar" class="def"
+ >bar</a
+ > :: f a -&gt; f <a href="#"
+ >Bool</a
+ > -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a id="v:bar-39-" class="def"
+ >bar'</a
+ > :: f (f a) -&gt; f (f (f b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a id="v:bar0" class="def"
+ >bar0</a
+ >, <a id="v:bar1" class="def"
+ >bar1</a
+ > :: (f a, f a) -&gt; (f b, f c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:Bar" class="caption collapser" onclick="toggleSection('i:Bar')"
+ >Instances</p
+ ><div id="section.i:Bar" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:1" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:1')"
+ ></span
+ > <a href="#"
+ >Bar</a
+ > <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:1" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >Bool</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ >) -&gt; <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: (<a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ >, <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ >) -&gt; (<a href="#"
+ >Maybe</a
+ > b, <a href="#"
+ >Maybe</a
+ > c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: (<a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ >, <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ >) -&gt; (<a href="#"
+ >Maybe</a
+ > b, <a href="#"
+ >Maybe</a
+ > c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:2" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:2')"
+ ></span
+ > <a href="#"
+ >Bar</a
+ > <a href="#"
+ >Maybe</a
+ > [a]</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:2" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: <a href="#"
+ >Maybe</a
+ > [a] -&gt; <a href="#"
+ >Maybe</a
+ > <a href="#"
+ >Bool</a
+ > -&gt; [a] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > [a]) -&gt; <a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > (<a href="#"
+ >Maybe</a
+ > b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: (<a href="#"
+ >Maybe</a
+ > [a], <a href="#"
+ >Maybe</a
+ > [a]) -&gt; (<a href="#"
+ >Maybe</a
+ > b, <a href="#"
+ >Maybe</a
+ > c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: (<a href="#"
+ >Maybe</a
+ > [a], <a href="#"
+ >Maybe</a
+ > [a]) -&gt; (<a href="#"
+ >Maybe</a
+ > b, <a href="#"
+ >Maybe</a
+ > c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:3" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:3')"
+ ></span
+ > <a href="#"
+ >Bar</a
+ > [] (a, a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:3" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: [(a, a)] -&gt; [<a href="#"
+ >Bool</a
+ >] -&gt; (a, a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: [[(a, a)]] -&gt; [[[b]]] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: ([(a, a)], [(a, a)]) -&gt; ([b], [c]) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: ([(a, a)], [(a, a)]) -&gt; ([b], [c]) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:4" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:4')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > f =&gt; <a href="#"
+ >Bar</a
+ > (<a href="#"
+ >Either</a
+ > a) (f a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:4" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: <a href="#"
+ >Either</a
+ > a (f a) -&gt; <a href="#"
+ >Either</a
+ > a <a href="#"
+ >Bool</a
+ > -&gt; f a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: <a href="#"
+ >Either</a
+ > a (<a href="#"
+ >Either</a
+ > a (f a)) -&gt; <a href="#"
+ >Either</a
+ > a (<a href="#"
+ >Either</a
+ > a (<a href="#"
+ >Either</a
+ > a b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: (<a href="#"
+ >Either</a
+ > a (f a), <a href="#"
+ >Either</a
+ > a (f a)) -&gt; (<a href="#"
+ >Either</a
+ > a b, <a href="#"
+ >Either</a
+ > a c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: (<a href="#"
+ >Either</a
+ > a (f a), <a href="#"
+ >Either</a
+ > a (f a)) -&gt; (<a href="#"
+ >Either</a
+ > a b, <a href="#"
+ >Either</a
+ > a c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:5" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:5')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >(,,)</a
+ > a b) =&gt; <a href="#"
+ >Bar</a
+ > (<a href="#"
+ >(,,)</a
+ > a b) (a, b, a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:5" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: (a, b, (a, b, a)) -&gt; (a, b, <a href="#"
+ >Bool</a
+ >) -&gt; (a, b, a) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: (a, b, (a, b, (a, b, a))) -&gt; (a, b, (a, b, (a, b, b))) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b), (a, b, c)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: ((a, b, (a, b, a)), (a, b, (a, b, a))) -&gt; ((a, b, b), (a, b, c)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Bar:Bar:6" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:6')"
+ ></span
+ > <a href="#"
+ >Bar</a
+ > (<a href="#"
+ >Quux</a
+ > a c) (<a href="#"
+ >Quux</a
+ > a b c)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Bar:Bar:6" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c) -&gt; <a href="#"
+ >Quux</a
+ > a c <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >Quux</a
+ > a b c <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c), <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; (<a href="#"
+ >Quux</a
+ > a c b, <a href="#"
+ >Quux</a
+ > a c c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c), <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; (<a href="#"
+ >Quux</a
+ > a c b, <a href="#"
+ >Quux</a
+ > a c c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >class</span
+ > <a id="t:Baz" class="def"
+ >Baz</a
+ > a <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a id="v:baz" class="def"
+ >baz</a
+ > :: a -&gt; (<span class="keyword"
+ >forall</span
+ > a. a -&gt; a) -&gt; (b, <span class="keyword"
+ >forall</span
+ > c. c -&gt; a) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a id="v:baz-39-" class="def"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > b. b -&gt; a) -&gt; (<span class="keyword"
+ >forall</span
+ > b. b -&gt; a) -&gt; [(b, a)] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a id="v:baz-39--39-" class="def"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > b. (<span class="keyword"
+ >forall</span
+ > b. b -&gt; a) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > c. c -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:Baz" class="caption collapser" onclick="toggleSection('i:Baz')"
+ >Instances</p
+ ><div id="section.i:Baz" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Baz:Baz:1" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:1')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > [c]</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Baz:Baz:1" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: [c] -&gt; (<span class="keyword"
+ >forall</span
+ > a. a -&gt; a) -&gt; (b, <span class="keyword"
+ >forall</span
+ > a. a -&gt; [c]) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > b. b -&gt; [c]) -&gt; (<span class="keyword"
+ >forall</span
+ > b. b -&gt; [c]) -&gt; [(b, [c])] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > b. (<span class="keyword"
+ >forall</span
+ > a. a -&gt; [c]) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > a. a -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Baz:Baz:2" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:2')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > (a -&gt; b)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Baz:Baz:2" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: (a -&gt; b) -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; c) -&gt; (b, <span class="keyword"
+ >forall</span
+ > c. c -&gt; a -&gt; b) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; a -&gt; b) -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; a -&gt; b) -&gt; [(b, a -&gt; b)] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > c. (<span class="keyword"
+ >forall</span
+ > d. d -&gt; a -&gt; b) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > c. c -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Baz:Baz:3" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:3')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > (a, b, c)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Baz:Baz:3" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: (a, b, c) -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; d) -&gt; (b, <span class="keyword"
+ >forall</span
+ > d. d -&gt; (a, b, c)) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; (a, b, c)) -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; (a, b, c)) -&gt; [(b, (a, b, c))] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. (<span class="keyword"
+ >forall</span
+ > e. e -&gt; (a, b, c)) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > d. d -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Baz:Baz:4" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:4')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > (<a href="#"
+ >Quux</a
+ > a b c)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Baz:Baz:4" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: <a href="#"
+ >Quux</a
+ > a b c -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; d) -&gt; (b, <span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; [(b, <a href="#"
+ >Quux</a
+ > a b c)] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. (<span class="keyword"
+ >forall</span
+ > e. e -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > d. d -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Baz:Baz:5" class="instance expander" onclick="toggleSection('i:ic:Baz:Baz:5')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > (a, [b], b, a)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Baz:Baz:5" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: (a, [b], b, a) -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; c) -&gt; (b, <span class="keyword"
+ >forall</span
+ > c. c -&gt; (a, [b], b, a)) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; (a, [b], b, a)) -&gt; (<span class="keyword"
+ >forall</span
+ > c. c -&gt; (a, [b], b, a)) -&gt; [(b, (a, [b], b, a))] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > c. (<span class="keyword"
+ >forall</span
+ > d. d -&gt; (a, [b], b, a)) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > c. c -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:Quux" class="def"
+ >Quux</a
+ > a b c <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs constructors"
+ ><p class="caption"
+ >Constructors</p
+ ><table
+ ><tr
+ ><td class="src"
+ ><a id="v:Qx" class="def"
+ >Qx</a
+ > a</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td class="src"
+ ><a id="v:Qux" class="def"
+ >Qux</a
+ > a b</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td class="src"
+ ><a id="v:Quux" class="def"
+ >Quux</a
+ > a b c</td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ></table
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:Quux" class="caption collapser" onclick="toggleSection('i:Quux')"
+ >Instances</p
+ ><div id="section.i:Quux" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:id:Quux:Foo:1" class="instance expander" onclick="toggleSection('i:id:Quux:Foo:1')"
+ ></span
+ > <a href="#"
+ >Foo</a
+ > (<a href="#"
+ >Quux</a
+ > a b)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:id:Quux:Foo:1" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >foo</a
+ > :: <a href="#"
+ >Quux</a
+ > a b <a href="#"
+ >Int</a
+ > -&gt; a -&gt; <a href="#"
+ >Quux</a
+ > a b a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >foo'</a
+ > :: <a href="#"
+ >Quux</a
+ > a b (<a href="#"
+ >Quux</a
+ > a b a) -&gt; <a href="#"
+ >Int</a
+ > -&gt; <a href="#"
+ >Quux</a
+ > a b (<a href="#"
+ >Quux</a
+ > a b <a href="#"
+ >Int</a
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:id:Quux:Bar:2" class="instance expander" onclick="toggleSection('i:id:Quux:Bar:2')"
+ ></span
+ > <a href="#"
+ >Bar</a
+ > (<a href="#"
+ >Quux</a
+ > a c) (<a href="#"
+ >Quux</a
+ > a b c)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:id:Quux:Bar:2" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >bar</a
+ > :: <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c) -&gt; <a href="#"
+ >Quux</a
+ > a c <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >Quux</a
+ > a b c <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar'</a
+ > :: <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a c b)) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar0</a
+ > :: (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c), <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; (<a href="#"
+ >Quux</a
+ > a c b, <a href="#"
+ >Quux</a
+ > a c c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >bar1</a
+ > :: (<a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c), <a href="#"
+ >Quux</a
+ > a c (<a href="#"
+ >Quux</a
+ > a b c)) -&gt; (<a href="#"
+ >Quux</a
+ > a c b, <a href="#"
+ >Quux</a
+ > a c c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:id:Quux:Baz:3" class="instance expander" onclick="toggleSection('i:id:Quux:Baz:3')"
+ ></span
+ > <a href="#"
+ >Baz</a
+ > (<a href="#"
+ >Quux</a
+ > a b c)</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:id:Quux:Baz:3" class="inst-details hide"
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >baz</a
+ > :: <a href="#"
+ >Quux</a
+ > a b c -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; d) -&gt; (b, <span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; (b, c) <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz'</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; (<span class="keyword"
+ >forall</span
+ > d. d -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; [(b, <a href="#"
+ >Quux</a
+ > a b c)] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><a href="#"
+ >baz''</a
+ > :: b -&gt; (<span class="keyword"
+ >forall</span
+ > d. (<span class="keyword"
+ >forall</span
+ > e. e -&gt; <a href="#"
+ >Quux</a
+ > a b c) -&gt; c) -&gt; <span class="keyword"
+ >forall</span
+ > d. d -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Thud</a
+ > <a href="#"
+ >Int</a
+ > (<a href="#"
+ >Quux</a
+ > a [a] c) <ul class="inst"
+ ><li class="inst"
+ >= <a id="v:Thuud" class="def"
+ >Thuud</a
+ > a</li
+ ><li class="inst"
+ >| <a id="v:Thuuud" class="def"
+ >Thuuud</a
+ > <a href="#"
+ >Int</a
+ > <a href="#"
+ >Int</a
+ ></li
+ ></ul
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ><div class="top"
+ ><p class="src"
+ ><span class="keyword"
+ >class</span
+ > <a id="t:Norf" class="def"
+ >Norf</a
+ > a b <span class="keyword"
+ >where</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="subs associated-types"
+ ><p class="caption"
+ >Associated Types</p
+ ><p class="src"
+ ><span class="keyword"
+ >type</span
+ > <a id="t:Plugh" class="def"
+ >Plugh</a
+ > a c b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a id="t:Thud" class="def"
+ >Thud</a
+ > a c <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ><div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a id="v:norf" class="def"
+ >norf</a
+ > :: <a href="#"
+ >Plugh</a
+ > a c b -&gt; a -&gt; (a -&gt; c) -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ><div class="subs instances"
+ ><p id="control.i:Norf" class="caption collapser" onclick="toggleSection('i:Norf')"
+ >Instances</p
+ ><div id="section.i:Norf" class="show"
+ ><table
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Norf:Norf:1" class="instance expander" onclick="toggleSection('i:ic:Norf:Norf:1')"
+ ></span
+ > <a href="#"
+ >Norf</a
+ > <a href="#"
+ >Int</a
+ > <a href="#"
+ >Bool</a
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Norf:Norf:1" class="inst-details hide"
+ ><div class="subs associated-types"
+ ><p class="caption"
+ >Associated Types</p
+ ><p class="src"
+ ><span class="keyword"
+ >type</span
+ > <a href="#"
+ >Plugh</a
+ > <a href="#"
+ >Int</a
+ > c <a href="#"
+ >Bool</a
+ > :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Thud</a
+ > <a href="#"
+ >Int</a
+ > c :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >norf</a
+ > :: <a href="#"
+ >Plugh</a
+ > <a href="#"
+ >Int</a
+ > c <a href="#"
+ >Bool</a
+ > -&gt; <a href="#"
+ >Int</a
+ > -&gt; (<a href="#"
+ >Int</a
+ > -&gt; c) -&gt; <a href="#"
+ >Bool</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:ic:Norf:Norf:2" class="instance expander" onclick="toggleSection('i:ic:Norf:Norf:2')"
+ ></span
+ > <a href="#"
+ >Norf</a
+ > [a] [b]</span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:ic:Norf:Norf:2" class="inst-details hide"
+ ><div class="subs associated-types"
+ ><p class="caption"
+ >Associated Types</p
+ ><p class="src"
+ ><span class="keyword"
+ >type</span
+ > <a href="#"
+ >Plugh</a
+ > [a] c [b] :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><p class="src"
+ ><span class="keyword"
+ >data</span
+ > <a href="#"
+ >Thud</a
+ > [a] c :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ > <div class="subs methods"
+ ><p class="caption"
+ >Methods</p
+ ><p class="src"
+ ><a href="#"
+ >norf</a
+ > :: <a href="#"
+ >Plugh</a
+ > [a] c [b] -&gt; [a] -&gt; ([a] -&gt; c) -&gt; [b] <a href="#" class="selflink"
+ >#</a
+ ></p
+ ></div
+ ></div
+ ></td
+ ></tr
+ ></table
+ ></div
+ ></div
+ ></div
+ ></div
+ ></div
+ ><div id="footer"
+ ></div
+ ></body
+ ></html
+> \ No newline at end of file
diff --git a/html-test/ref/Math.html b/html-test/ref/Math.html
index 5b76fd13..9f054ccc 100644
--- a/html-test/ref/Math.html
+++ b/html-test/ref/Math.html
@@ -1,34 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Math</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Math.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Math.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -64,9 +63,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Math.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
></li
></ul
@@ -76,10 +75,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Math.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a name="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -93,11 +94,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Math.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.1</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Minimal.html b/html-test/ref/Minimal.html
index 48c469d1..721260c6 100644
--- a/html-test/ref/Minimal.html
+++ b/html-test/ref/Minimal.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Minimal</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Minimal.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,28 +57,30 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs minimal"
><p class="caption"
>Minimal complete definition</p
><p class="src"
- ><a href=""
+ ><a href="#"
>foo</a
- >, <a href=""
+ >, <a href="#"
>bar</a
- > | <a href=""
+ > | <a href="#"
>bar</a
- >, <a href=""
+ >, <a href="#"
>bat</a
- > | <a href=""
+ > | <a href="#"
>foo</a
- >, <a href=""
+ >, <a href="#"
>bat</a
- > | <a href=""
+ > | <a href="#"
>fooBarBat</a
></p
></div
@@ -85,25 +88,33 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Any two of these are required...</p
></div
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:bat" class="def"
+ ><a id="v:bat" class="def"
>bat</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:fooBarBat" class="def"
+ ><a id="v:fooBarBat" class="def"
>fooBarBat</a
- > :: (a, a, a)</p
+ > :: (a, a, a) <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>.. or just this</p
@@ -114,28 +125,30 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Weird" class="def"
+ > <a id="t:Weird" class="def"
>Weird</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs minimal"
><p class="caption"
>Minimal complete definition</p
><p class="src"
- ><a href=""
+ ><a href="#"
>a</a
- >, <a href=""
+ >, <a href="#"
>b</a
- >, <a href=""
+ >, <a href="#"
>c</a
- > | <a href=""
+ > | <a href="#"
>d</a
- > | <a href=""
+ > | <a href="#"
>e</a
- >, (<a href=""
+ >, (<a href="#"
>f</a
- > | <a href=""
+ > | <a href="#"
>g</a
>)</p
></div
@@ -143,51 +156,67 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:a" class="def"
+ ><a id="v:a" class="def"
>a</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:b" class="def"
+ ><a id="v:b" class="def"
>b</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:c" class="def"
+ ><a id="v:c" class="def"
>c</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:d" class="def"
+ ><a id="v:d" class="def"
>d</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:e" class="def"
+ ><a id="v:e" class="def"
>e</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
><div class="top"
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:NoMins" class="def"
+ > <a id="t:NoMins" class="def"
>NoMins</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs minimal"
><p class="caption"
>Minimal complete definition</p
><p class="src"
- ><a href=""
+ ><a href="#"
>x</a
- >, <a href=""
+ >, <a href="#"
>y</a
></p
></div
@@ -195,55 +224,79 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:x" class="def"
+ ><a id="v:x" class="def"
>x</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:y" class="def"
+ ><a id="v:y" class="def"
>y</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:z" class="def"
+ ><a id="v:z" class="def"
>z</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
><div class="top"
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:FullMin" class="def"
+ > <a id="t:FullMin" class="def"
>FullMin</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >aaa</a
+ >, <a href="#"
+ >bbb</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:aaa" class="def"
+ ><a id="v:aaa" class="def"
>aaa</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:bbb" class="def"
+ ><a id="v:bbb" class="def"
>bbb</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
><div class="top"
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:PartialMin" class="def"
+ > <a id="t:PartialMin" class="def"
>PartialMin</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs minimal"
><p class="caption"
>Minimal complete definition</p
><p class="src"
- ><a href=""
+ ><a href="#"
>ccc</a
>, ddd</p
></div
@@ -251,47 +304,45 @@ window.onload = function () {pageLoad();setSynopsis("mini_Minimal.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:ccc" class="def"
+ ><a id="v:ccc" class="def"
>ccc</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
><div class="top"
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:EmptyMin" class="def"
+ > <a id="t:EmptyMin" class="def"
>EmptyMin</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
- ><div class="subs minimal"
- ><p class="caption"
- >Minimal complete definition</p
- ><p class="src"
- >Nothing</p
- ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:eee" class="def"
+ ><a id="v:eee" class="def"
>eee</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:fff" class="def"
+ ><a id="v:fff" class="def"
>fff</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/ModuleWithWarning.html b/html-test/ref/ModuleWithWarning.html
index fa2a6787..776edd9b 100644
--- a/html-test/ref/ModuleWithWarning.html
+++ b/html-test/ref/ModuleWithWarning.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>ModuleWithWarning</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_ModuleWithWarning.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_ModuleWithWarning.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -47,12 +48,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_ModuleWithWarning.html
><div class="doc"
><div class="warning"
><p
- >Warning: This is an unstable interface. Prefer functions from <a href=""
+ >Warning: This is an unstable interface. Prefer functions from <a href="#"
>Prelude</a
> instead!</p
></div
><p
- >Documentation for <a href=""
+ >Documentation for <a href="#"
>ModuleWithWarning</a
>.</p
></div
@@ -62,20 +63,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_ModuleWithWarning.html
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/NamedDoc.html b/html-test/ref/NamedDoc.html
index 64e18711..50590660 100644
--- a/html-test/ref/NamedDoc.html
+++ b/html-test/ref/NamedDoc.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>NamedDoc</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_NamedDoc.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_NamedDoc.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -57,11 +58,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_NamedDoc.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Nesting.html b/html-test/ref/Nesting.html
index 7bba5148..d98a75eb 100644
--- a/html-test/ref/Nesting.html
+++ b/html-test/ref/Nesting.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Nesting</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Nesting.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Nesting.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,35 +47,35 @@ window.onload = function () {pageLoad();setSynopsis("mini_Nesting.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>d</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>e</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>h</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>i</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>j</a
> :: t</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>k</a
> :: t</li
></ul
@@ -84,9 +85,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Nesting.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:d" class="def"
+ ><a id="v:d" class="def"
>d</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -116,9 +119,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Nesting.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:e" class="def"
+ ><a id="v:e" class="def"
>e</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -137,9 +142,11 @@ the presence of this text pushes it out of nesting back to the top.</li
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -155,9 +162,11 @@ the presence of this text pushes it out of nesting back to the top.</li
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -173,9 +182,11 @@ the presence of this text pushes it out of nesting back to the top.</li
></div
><div class="top"
><p class="src"
- ><a href="" id="v:h" class="def"
+ ><a id="v:h" class="def"
>h</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -191,9 +202,11 @@ tracks</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:i" class="def"
+ ><a id="v:i" class="def"
>i</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -241,9 +254,11 @@ More of the indented list.</p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:j" class="def"
+ ><a id="v:j" class="def"
>j</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><dl
><dt
@@ -309,9 +324,11 @@ with more of the indented list content.</p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:k" class="def"
+ ><a id="v:k" class="def"
>k</a
- > :: t</p
+ > :: t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><ul
><li
@@ -335,11 +352,7 @@ with more of the indented list content.</p
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/NoLayout.html b/html-test/ref/NoLayout.html
index 8b47eab8..061b5d42 100644
--- a/html-test/ref/NoLayout.html
+++ b/html-test/ref/NoLayout.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>NoLayout</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_NoLayout.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_NoLayout.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_NoLayout.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,15 +59,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_NoLayout.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>the function <code
- ><a href=""
+ ><a href="#"
>g</a
></code
></p
@@ -75,11 +78,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_NoLayout.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/NonGreedy.html b/html-test/ref/NonGreedy.html
index c22c8ea9..ea18c7c4 100644
--- a/html-test/ref/NonGreedy.html
+++ b/html-test/ref/NonGreedy.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>NonGreedy</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_NonGreedy.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_NonGreedy.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,7 +47,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_NonGreedy.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: a</li
></ul
@@ -56,14 +57,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_NonGreedy.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
- ><a href=""
+ ><a href="#"
>url1</a
- > <a href=""
+ > <a href="#"
>url2</a
></p
></div
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_NonGreedy.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Operators.html b/html-test/ref/Operators.html
index 6ac8ae38..6c795d85 100644
--- a/html-test/ref/Operators.html
+++ b/html-test/ref/Operators.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Operators</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Operators.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -54,37 +55,37 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>(+-)</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>(*/)</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
> :: a -&gt; a -&gt; a</li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Foo</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>`Bar`</a
- > <a href=""
+ > <a href="#"
>Foo</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>:-</a
- > <a href=""
+ > <a href="#"
>Foo</a
></li
></ul
@@ -92,21 +93,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><li class="src short"
><span class="keyword"
>pattern</span
- > <a href=""
+ > <a href="#"
>(:+)</a
- > :: t -&gt; t -&gt; [t]</li
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; t -&gt; [t]</li
><li class="src short"
><span class="keyword"
>data</span
- > a <a href=""
+ > a <a href="#"
>&lt;-&gt;</a
> b <span class="keyword"
>where</span
><ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>(:&lt;-&gt;)</a
- > :: a -&gt; b -&gt; a <a href=""
+ > :: a -&gt; b -&gt; a <a href="#"
>&lt;-&gt;</a
> b</li
></ul
@@ -114,59 +117,45 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><li class="src short"
><span class="keyword"
>type family</span
- > a <a href=""
+ > a <a href="#"
>++</a
> b</li
><li class="src short"
><span class="keyword"
>data family</span
- > a <a href=""
+ > a <a href="#"
>**</a
> b</li
><li class="src short"
><span class="keyword"
>class</span
- > a <a href=""
+ > a <a href="#"
>&gt;&lt;&gt;</a
- > b <span class="keyword"
+ > b | a -&gt; b <span class="keyword"
>where</span
><ul class="subs"
><li
><span class="keyword"
>type</span
- > a <a href=""
+ > a <a href="#"
>&lt;&gt;&lt;</a
- > b :: *</li
+ > b :: <a href="#"
+ >*</a
+ ></li
><li
><span class="keyword"
>data</span
- > a <a href=""
+ > a <a href="#"
>&gt;&lt;&lt;</a
> b</li
- ><li
- ><a href=""
- >(&gt;&gt;&lt;)</a
- >, <a href=""
- >(&lt;&lt;&gt;)</a
- > :: a -&gt; b -&gt; ()</li
- ><li
- ><a href=""
- >(**&gt;)</a
- >, <a href=""
- >(**&lt;)</a
- >, <a href=""
- >(&gt;**)</a
- >, <a href=""
- >(&lt;**)</a
- > :: a -&gt; a -&gt; ()</li
></ul
></li
><li class="src short"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&gt;-&lt;)</a
- > a b = a <a href=""
+ > a b = a <a href="#"
>&lt;-&gt;</a
> b</li
></ul
@@ -176,9 +165,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:-43--45-" class="def"
+ ><a id="v:-43--45-" class="def"
>(+-)</a
- > :: a -&gt; a -&gt; a</p
+ > :: a -&gt; a -&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Operator with no fixity</p
@@ -186,12 +177,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:-42--47-" class="def"
+ ><a id="v:-42--47-" class="def"
>(*/)</a
> :: a -&gt; a -&gt; a <span class="fixity"
>infixr 7</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -200,12 +193,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
> :: a -&gt; a -&gt; a <span class="fixity"
>infixl 3</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -216,8 +211,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -229,11 +226,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><table
><tr
><td class="src"
- ><a href=""
+ ><a href="#"
>Foo</a
- > <a href="" id="v:Bar" class="def"
+ > <a id="v:Bar" class="def"
>`Bar`</a
- > <a href=""
+ > <a href="#"
>Foo</a
> <span class="fixity"
>infixl 3</span
@@ -247,11 +244,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
></tr
><tr
><td class="src"
- ><a href=""
+ ><a href="#"
>Foo</a
- > <a href="" id="v::-45-" class="def"
+ > <a id="v::-45-" class="def"
>:-</a
- > <a href=""
+ > <a href="#"
>Foo</a
> <span class="fixity"
>infixr 5</span
@@ -270,12 +267,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>pattern</span
- > <a href="" id="v::-43-" class="def"
+ > <a id="v::-43-" class="def"
>(:+)</a
- > :: t -&gt; t -&gt; [t] <span class="fixity"
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; t -&gt; [t] <span class="fixity"
>infixr 3</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -286,7 +287,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>data</span
- > a <a href="" id="t:-60--45--62-" class="def"
+ > a <a id="t:-60--45--62-" class="def"
>&lt;-&gt;</a
> b <span class="keyword"
>where</span
@@ -294,6 +295,8 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
>infixl 6</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -305,9 +308,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><table
><tr
><td class="src"
- ><a href="" id="v::-60--45--62-" class="def"
+ ><a id="v::-60--45--62-" class="def"
>(:&lt;-&gt;)</a
- > :: a -&gt; b -&gt; a <a href=""
+ > :: a -&gt; b -&gt; a <a href="#"
>&lt;-&gt;</a
> b <span class="fixity"
>infixr 6</span
@@ -315,7 +318,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
></span
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -324,12 +327,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>type family</span
- > a <a href="" id="t:-43--43-" class="def"
+ > a <a id="t:-43--43-" class="def"
>++</a
> b <span class="fixity"
>infix 3</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -340,12 +345,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>data family</span
- > a <a href="" id="t:-42--42-" class="def"
+ > a <a id="t:-42--42-" class="def"
>**</a
> b <span class="fixity"
>infix 9</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -356,50 +363,76 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>class</span
- > a <a href="" id="t:-62--60--62-" class="def"
+ > a <a id="t:-62--60--62-" class="def"
>&gt;&lt;&gt;</a
- > b <span class="keyword"
+ > b | a -&gt; b <span class="keyword"
>where</span
> <span class="fixity"
>infixr 1</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>Class with fixity, including associated types</p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >(&gt;&gt;&lt;)</a
+ >, <a href="#"
+ >(&lt;&lt;&gt;)</a
+ >, <a href="#"
+ >(**&gt;)</a
+ >, <a href="#"
+ >(**&lt;)</a
+ >, <a href="#"
+ >(&gt;**)</a
+ >, <a href="#"
+ >(&lt;**)</a
+ ></p
+ ></div
><div class="subs associated-types"
><p class="caption"
>Associated Types</p
><p class="src"
><span class="keyword"
>type</span
- > a <a href="" id="t:-60--62--60-" class="def"
+ > a <a id="t:-60--62--60-" class="def"
>&lt;&gt;&lt;</a
- > b :: * <span class="fixity"
+ > b :: <a href="#"
+ >*</a
+ > <span class="fixity"
>infixl 2</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
><span class="keyword"
>data</span
- > a <a href="" id="t:-62--60--60-" class="def"
+ > a <a id="t:-62--60--60-" class="def"
>&gt;&lt;&lt;</a
> b <span class="fixity"
>infixl 3</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:-62--62--60-" class="def"
+ ><a id="v:-62--62--60-" class="def"
>(&gt;&gt;&lt;)</a
- >, <a href="" id="v:-60--60--62-" class="def"
+ >, <a id="v:-60--60--62-" class="def"
>(&lt;&lt;&gt;)</a
> :: a -&gt; b -&gt; () <span class="fixity"
>infixl 5 &lt;&lt;&gt;</span
@@ -407,15 +440,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
>infixr 4 &gt;&gt;&lt;</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href="" id="v:-42--42--62-" class="def"
+ ><a id="v:-42--42--62-" class="def"
>(**&gt;)</a
- >, <a href="" id="v:-42--42--60-" class="def"
+ >, <a id="v:-42--42--60-" class="def"
>(**&lt;)</a
- >, <a href="" id="v:-62--42--42-" class="def"
+ >, <a id="v:-62--42--42-" class="def"
>(&gt;**)</a
- >, <a href="" id="v:-60--42--42-" class="def"
+ >, <a id="v:-60--42--42-" class="def"
>(&lt;**)</a
> :: a -&gt; a -&gt; () <span class="fixity"
>infixr 8 **&gt;, &gt;**</span
@@ -423,6 +458,8 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
>infixl 8 **&lt;, &lt;**</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -434,14 +471,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
><p class="src"
><span class="keyword"
>type</span
- > <a href="" id="t:-62--45--60-" class="def"
+ > <a id="t:-62--45--60-" class="def"
>(&gt;-&lt;)</a
- > a b = a <a href=""
+ > a b = a <a href="#"
>&lt;-&gt;</a
> b <span class="fixity"
>infixl 6</span
><span class="rightedge"
></span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -451,11 +490,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/OrphanInstances.html b/html-test/ref/OrphanInstances.html
index 0f12bb2e..a5accfdf 100644
--- a/html-test/ref/OrphanInstances.html
+++ b/html-test/ref/OrphanInstances.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>OrphanInstances</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstances.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_OrphanInstances.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href="index.html"
+ ><a href="#"
>Contents</a
></li
><li
- ><a href="doc-index.html"
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,7 +47,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstances.html")
>Contents</p
><ul
><li
- ><a href="#section.orphans"
+ ><a href="#"
>Orphan instances</a
></li
></ul
@@ -69,11 +70,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstances.html")
><span class="inst-left"
><span id="control.i:o:ic:AClass:AClass:1" class="instance expander" onclick="toggleSection('i:o:ic:AClass:AClass:1')"
></span
- > <a href="OrphanInstancesClass.html#t:AClass"
+ > <a href="#"
>AClass</a
- > <a href="OrphanInstancesType.html#t:AType"
+ > <a href="#"
>AType</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -87,12 +90,14 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstances.html")
><p class="caption"
>Methods</p
><p class="src"
- ><a href="#v:aClass"
+ ><a href="#"
>aClass</a
- > :: <a href="OrphanInstancesType.html#t:AType"
+ > :: <a href="#"
>AType</a
- > -&gt; <a href="/opt/exp/ghc/roots/landing/share/doc/ghc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int"
+ > -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -103,11 +108,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstances.html")
></div
></div
><div id="footer"
- ><p
- >Produced by <a href="http://www.haskell.org/haddock/"
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/OrphanInstancesClass.html b/html-test/ref/OrphanInstancesClass.html
index 69ba33f8..0f1b31c9 100644
--- a/html-test/ref/OrphanInstancesClass.html
+++ b/html-test/ref/OrphanInstancesClass.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>OrphanInstancesClass</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesClass.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_OrphanInstancesClass.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href="index.html"
+ ><a href="#"
>Contents</a
></li
><li
- ><a href="doc-index.html"
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,16 +49,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesClass.h
><p class="src"
><span class="keyword"
>class</span
- > <a href="#t:AClass" id="t:AClass" class="def"
+ > <a id="t:AClass" class="def"
>AClass</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs minimal"
><p class="caption"
>Minimal complete definition</p
><p class="src"
- ><a href="OrphanInstancesClass.html#v:aClass"
+ ><a href="#"
>aClass</a
></p
></div
@@ -65,21 +68,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesClass.h
><p class="caption"
>Methods</p
><p class="src"
- ><a href="#v:aClass" id="v:aClass" class="def"
+ ><a id="v:aClass" class="def"
>aClass</a
- > :: a -&gt; <a href="/opt/exp/ghc/roots/landing/share/doc/ghc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int"
+ > :: a -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href="http://www.haskell.org/haddock/"
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/OrphanInstancesType.html b/html-test/ref/OrphanInstancesType.html
index 2652db73..ceabdaaa 100644
--- a/html-test/ref/OrphanInstancesType.html
+++ b/html-test/ref/OrphanInstancesType.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>OrphanInstancesType</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesType.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_OrphanInstancesType.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href="index.html"
+ ><a href="#"
>Contents</a
></li
><li
- ><a href="doc-index.html"
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesType.ht
><p class="src"
><span class="keyword"
>data</span
- > <a href="#t:AType" id="t:AType" class="def"
+ > <a id="t:AType" class="def"
>AType</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -57,13 +60,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesType.ht
><table
><tr
><td class="src"
- ><a href="#v:AType" id="v:AType" class="def"
+ ><a id="v:AType" class="def"
>AType</a
- > <a href="/opt/exp/ghc/roots/landing/share/doc/ghc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int"
+ > <a href="#"
>Int</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_OrphanInstancesType.ht
></div
></div
><div id="footer"
- ><p
- >Produced by <a href="http://www.haskell.org/haddock/"
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/PatternSyns.html b/html-test/ref/PatternSyns.html
index 6fe8fff0..ffebdf27 100644
--- a/html-test/ref/PatternSyns.html
+++ b/html-test/ref/PatternSyns.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>PatternSyns</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_PatternSyns.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,55 +57,63 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>FooType</a
- > x = <a href=""
+ > x = <a href="#"
>FooCtor</a
> x</li
><li class="src short"
><span class="keyword"
>pattern</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > :: t -&gt; <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; <a href="#"
>FooType</a
> t</li
><li class="src short"
><span class="keyword"
>pattern</span
- > <a href=""
+ > <a href="#"
>Bar</a
- > :: t -&gt; <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; <a href="#"
>FooType</a
- > (<a href=""
+ > (<a href="#"
>FooType</a
> t)</li
><li class="src short"
><span class="keyword"
>pattern</span
- > <a href=""
+ > <a href="#"
>(:&lt;-&gt;)</a
- > :: t -&gt; t -&gt; (<a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t t. t -&gt; t -&gt; (<a href="#"
>FooType</a
- > t, <a href=""
+ > t, <a href="#"
>FooType</a
- > (<a href=""
+ > (<a href="#"
>FooType</a
> t))</li
><li class="src short"
><span class="keyword"
>data</span
- > a <a href=""
+ > a <a href="#"
>&gt;&lt;</a
- > b = <a href=""
+ > b = <a href="#"
>Empty</a
></li
><li class="src short"
><span class="keyword"
>pattern</span
- > <a href=""
+ > <a href="#"
>E</a
- > :: <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > k t t. <a href="#"
>(&gt;&lt;)</a
> k t t</li
></ul
@@ -116,9 +125,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:FooType" class="def"
+ > <a id="t:FooType" class="def"
>FooType</a
- > x</p
+ > x <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>FooType doc</p
@@ -129,11 +140,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:FooCtor" class="def"
+ ><a id="v:FooCtor" class="def"
>FooCtor</a
> x</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -142,15 +153,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>pattern</span
- > <a href="" id="v:Foo" class="def"
+ > <a id="v:Foo" class="def"
>Foo</a
- > :: t -&gt; <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; <a href="#"
>FooType</a
- > t</p
+ > t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Pattern synonym for <code
- ><a href=""
+ ><a href="#"
>Foo</a
></code
> x</p
@@ -160,17 +175,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>pattern</span
- > <a href="" id="v:Bar" class="def"
+ > <a id="v:Bar" class="def"
>Bar</a
- > :: t -&gt; <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t. t -&gt; <a href="#"
>FooType</a
- > (<a href=""
+ > (<a href="#"
>FooType</a
- > t)</p
+ > t) <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Pattern synonym for <code
- ><a href=""
+ ><a href="#"
>Bar</a
></code
> x</p
@@ -180,19 +199,23 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>pattern</span
- > <a href="" id="v::-60--45--62-" class="def"
+ > <a id="v::-60--45--62-" class="def"
>(:&lt;-&gt;)</a
- > :: t -&gt; t -&gt; (<a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > t t. t -&gt; t -&gt; (<a href="#"
>FooType</a
- > t, <a href=""
+ > t, <a href="#"
>FooType</a
- > (<a href=""
+ > (<a href="#"
>FooType</a
- > t))</p
+ > t)) <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Pattern synonym for (<code
- ><a href=""
+ ><a href="#"
>:&lt;-&gt;</a
></code
>)</p
@@ -202,13 +225,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>data</span
- > a <a href="" id="t:-62--60-" class="def"
+ > a <a id="t:-62--60-" class="def"
>&gt;&lt;</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for (<code
- ><a href=""
+ ><a href="#"
>&gt;&lt;</a
></code
>)</p
@@ -219,11 +244,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:Empty" class="def"
+ ><a id="v:Empty" class="def"
>Empty</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -232,15 +257,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
><p class="src"
><span class="keyword"
>pattern</span
- > <a href="" id="v:E" class="def"
+ > <a id="v:E" class="def"
>E</a
- > :: <a href=""
+ > :: <span class="keyword"
+ >forall</span
+ > k t t. <a href="#"
>(&gt;&lt;)</a
- > k t t</p
+ > k t t <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Pattern for <code
- ><a href=""
+ ><a href="#"
>Empty</a
></code
></p
@@ -249,11 +278,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_PatternSyns.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/PromotedTypes.html b/html-test/ref/PromotedTypes.html
index db42f637..65aa0112 100644
--- a/html-test/ref/PromotedTypes.html
+++ b/html-test/ref/PromotedTypes.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>PromotedTypes</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_PromotedTypes.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,30 +49,32 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:RevList" class="def"
+ > <a id="t:RevList" class="def"
>RevList</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:RNil" class="def"
+ ><a id="v:RNil" class="def"
>RNil</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- >(<a href=""
+ >(<a href="#"
>RevList</a
- > a) <a href="" id="v::-62-" class="def"
+ > a) <a id="v::-62-" class="def"
>:&gt;</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -80,10 +83,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Pattern" class="def"
+ > <a id="t:Pattern" class="def"
>Pattern</a
- > :: [*] -&gt; * <span class="keyword"
+ > :: [<a href="#"
+ >*</a
+ >] -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -91,27 +100,27 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><table
><tr
><td class="src"
- ><a href="" id="v:Nil" class="def"
+ ><a id="v:Nil" class="def"
>Nil</a
- > :: <a href=""
+ > :: <a href="#"
>Pattern</a
> '[]</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:Cons" class="def"
+ ><a id="v:Cons" class="def"
>Cons</a
- > :: <a href=""
+ > :: <a href="#"
>Maybe</a
- > h -&gt; <a href=""
+ > h -&gt; <a href="#"
>Pattern</a
- > t -&gt; <a href=""
+ > t -&gt; <a href="#"
>Pattern</a
> (h ': t)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -120,12 +129,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:RevPattern" class="def"
+ > <a id="t:RevPattern" class="def"
>RevPattern</a
- > :: <a href=""
+ > :: <a href="#"
>RevList</a
- > * -&gt; * <span class="keyword"
+ > <a href="#"
+ >*</a
+ > -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -133,31 +148,31 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><table
><tr
><td class="src"
- ><a href="" id="v:RevNil" class="def"
+ ><a id="v:RevNil" class="def"
>RevNil</a
- > :: <a href=""
+ > :: <a href="#"
>RevPattern</a
- > <a href=""
+ > <a href="#"
>RNil</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:RevCons" class="def"
+ ><a id="v:RevCons" class="def"
>RevCons</a
- > :: <a href=""
+ > :: <a href="#"
>Maybe</a
- > h -&gt; <a href=""
+ > h -&gt; <a href="#"
>RevPattern</a
- > t -&gt; <a href=""
+ > t -&gt; <a href="#"
>RevPattern</a
- > (t <a href=""
+ > (t <a href="#"
>:&gt;</a
> h)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -166,10 +181,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Tuple" class="def"
+ > <a id="t:Tuple" class="def"
>Tuple</a
- > :: (*, *) -&gt; * <span class="keyword"
+ > :: (<a href="#"
+ >*</a
+ >, <a href="#"
+ >*</a
+ >) -&gt; <a href="#"
+ >*</a
+ > <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -177,13 +200,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
><table
><tr
><td class="src"
- ><a href="" id="v:Tuple" class="def"
+ ><a id="v:Tuple" class="def"
>Tuple</a
- > :: a -&gt; b -&gt; <a href=""
+ > :: a -&gt; b -&gt; <a href="#"
>Tuple</a
> '(a, b)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -191,11 +214,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_PromotedTypes.html");}
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Properties.html b/html-test/ref/Properties.html
index 5d2e58c0..4020bb45 100644
--- a/html-test/ref/Properties.html
+++ b/html-test/ref/Properties.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Properties</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Properties.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Properties.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,11 +47,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Properties.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>fib</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Integer</a
></li
></ul
@@ -60,17 +61,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Properties.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:fib" class="def"
+ ><a id="v:fib" class="def"
>fib</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>Fibonacci number of given <code
- ><a href=""
+ ><a href="#"
>Integer</a
></code
>.</p
@@ -81,11 +84,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Properties.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/PruneWithWarning.html b/html-test/ref/PruneWithWarning.html
index bbf21f42..0ee2b104 100644
--- a/html-test/ref/PruneWithWarning.html
+++ b/html-test/ref/PruneWithWarning.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>PruneWithWarning</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_PruneWithWarning.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_PruneWithWarning.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -60,11 +61,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_PruneWithWarning.html"
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/QuasiExpr.html b/html-test/ref/QuasiExpr.html
index 41129d59..37face02 100644
--- a/html-test/ref/QuasiExpr.html
+++ b/html-test/ref/QuasiExpr.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>QuasiExpr</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_QuasiExpr.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,8 +49,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Expr" class="def"
+ > <a id="t:Expr" class="def"
>Expr</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -57,47 +60,47 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:IntExpr" class="def"
+ ><a id="v:IntExpr" class="def"
>IntExpr</a
- > <a href=""
+ > <a href="#"
>Integer</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:AntiIntExpr" class="def"
+ ><a id="v:AntiIntExpr" class="def"
>AntiIntExpr</a
- > <a href=""
+ > <a href="#"
>String</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:BinopExpr" class="def"
+ ><a id="v:BinopExpr" class="def"
>BinopExpr</a
- > <a href=""
+ > <a href="#"
>BinOp</a
- > <a href=""
+ > <a href="#"
>Expr</a
- > <a href=""
+ > <a href="#"
>Expr</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:AntiExpr" class="def"
+ ><a id="v:AntiExpr" class="def"
>AntiExpr</a
- > <a href=""
+ > <a href="#"
>String</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -111,14 +114,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><span class="inst-left"
><span id="control.i:id:Expr:Show:1" class="instance expander" onclick="toggleSection('i:id:Expr:Show:1')"
></span
- > <a href=""
+ > <a href="#"
>Show</a
- > <a href=""
+ > <a href="#"
>Expr</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -127,30 +132,36 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>showsPrec</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Expr</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>ShowS</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>show</a
- > :: <a href=""
+ > :: <a href="#"
>Expr</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>String</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>showList</a
- > :: [<a href=""
+ > :: [<a href="#"
>Expr</a
- >] -&gt; <a href=""
+ >] -&gt; <a href="#"
>ShowS</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -164,8 +175,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:BinOp" class="def"
+ > <a id="t:BinOp" class="def"
>BinOp</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs constructors"
><p class="caption"
@@ -173,35 +186,35 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:AddOp" class="def"
+ ><a id="v:AddOp" class="def"
>AddOp</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:SubOp" class="def"
+ ><a id="v:SubOp" class="def"
>SubOp</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:MulOp" class="def"
+ ><a id="v:MulOp" class="def"
>MulOp</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:DivOp" class="def"
+ ><a id="v:DivOp" class="def"
>DivOp</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -215,14 +228,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><span class="inst-left"
><span id="control.i:id:BinOp:Show:1" class="instance expander" onclick="toggleSection('i:id:BinOp:Show:1')"
></span
- > <a href=""
+ > <a href="#"
>Show</a
- > <a href=""
+ > <a href="#"
>BinOp</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -231,30 +246,36 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>showsPrec</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>BinOp</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>ShowS</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>show</a
- > :: <a href=""
+ > :: <a href="#"
>BinOp</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>String</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><p class="src"
- ><a href=""
+ ><a href="#"
>showList</a
- > :: [<a href=""
+ > :: [<a href="#"
>BinOp</a
- >] -&gt; <a href=""
+ >] -&gt; <a href="#"
>ShowS</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
@@ -266,36 +287,38 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.html");};
></div
><div class="top"
><p class="src"
- ><a href="" id="v:eval" class="def"
+ ><a id="v:eval" class="def"
>eval</a
- > :: <a href=""
+ > :: <a href="#"
>Expr</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:expr" class="def"
+ ><a id="v:expr" class="def"
>expr</a
- > :: QuasiQuoter</p
+ > :: QuasiQuoter <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:parseExprExp" class="def"
+ ><a id="v:parseExprExp" class="def"
>parseExprExp</a
- > :: <a href=""
+ > :: <a href="#"
>String</a
- > -&gt; Q Exp</p
+ > -&gt; Q Exp <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/QuasiQuote.html b/html-test/ref/QuasiQuote.html
index 610f5edf..5fa53bb0 100644
--- a/html-test/ref/QuasiQuote.html
+++ b/html-test/ref/QuasiQuote.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>QuasiQuote</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_QuasiQuote.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_QuasiQuote.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,20 +47,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_QuasiQuote.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:val" class="def"
+ ><a id="v:val" class="def"
>val</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/SpuriousSuperclassConstraints.html b/html-test/ref/SpuriousSuperclassConstraints.html
index 1cae5ba1..b5aa56b3 100644
--- a/html-test/ref/SpuriousSuperclassConstraints.html
+++ b/html-test/ref/SpuriousSuperclassConstraints.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>SpuriousSuperclassConstraints</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_SpuriousSuperclassConstraints.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_SpuriousSuperclassConstraints.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -51,13 +52,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_SpuriousSuperclassCons
>Due to a change in GHC 7.6.1 we had a bug that superclass contraints were
included in the instances list. Edward K. repported it here:</p
><p
- ><a href=""
+ ><a href="#"
>http://www.haskell.org/pipermail/haskell-cafe/2012-September/103600.html</a
></p
><p
>And here is the corresponding theard on glasgow-haskell-users:</p
><p
- ><a href=""
+ ><a href="#"
>http://www.haskell.org/pipermail/glasgow-haskell-users/2012-September/022914.html</a
></p
><p
@@ -74,9 +75,11 @@ Fix spurious superclass constraints bug.</pre
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:SomeType" class="def"
+ > <a id="t:SomeType" class="def"
>SomeType</a
- > f a</p
+ > f a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs instances"
><p id="control.i:SomeType" class="caption collapser" onclick="toggleSection('i:SomeType')"
>Instances</p
@@ -87,14 +90,16 @@ Fix spurious superclass constraints bug.</pre
><span class="inst-left"
><span id="control.i:id:SomeType:Functor:1" class="instance expander" onclick="toggleSection('i:id:SomeType:Functor:1')"
></span
- > <a href=""
+ > <a href="#"
>Functor</a
- > (<a href=""
+ > (<a href="#"
>SomeType</a
> f)</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -103,21 +108,25 @@ Fix spurious superclass constraints bug.</pre
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>fmap</a
- > :: (a -&gt; b) -&gt; <a href=""
+ > :: (a -&gt; b) -&gt; <a href="#"
>SomeType</a
- > f a -&gt; <a href=""
+ > f a -&gt; <a href="#"
>SomeType</a
- > f b</p
+ > f b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(&lt;$)</a
- > :: a -&gt; <a href=""
+ > :: a -&gt; <a href="#"
>SomeType</a
- > f b -&gt; <a href=""
+ > f b -&gt; <a href="#"
>SomeType</a
- > f a</p
+ > f a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -127,16 +136,18 @@ Fix spurious superclass constraints bug.</pre
><span class="inst-left"
><span id="control.i:id:SomeType:Applicative:2" class="instance expander" onclick="toggleSection('i:id:SomeType:Applicative:2')"
></span
- > <a href=""
+ > <a href="#"
>Applicative</a
- > f =&gt; <a href=""
+ > f =&gt; <a href="#"
>Applicative</a
- > (<a href=""
+ > (<a href="#"
>SomeType</a
> f)</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -145,41 +156,49 @@ Fix spurious superclass constraints bug.</pre
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>pure</a
- > :: a -&gt; <a href=""
+ > :: a -&gt; <a href="#"
>SomeType</a
- > f a</p
+ > f a <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(&lt;*&gt;)</a
- > :: <a href=""
+ > :: <a href="#"
>SomeType</a
- > f (a -&gt; b) -&gt; <a href=""
+ > f (a -&gt; b) -&gt; <a href="#"
>SomeType</a
- > f a -&gt; <a href=""
+ > f a -&gt; <a href="#"
>SomeType</a
- > f b</p
+ > f b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(*&gt;)</a
- > :: <a href=""
+ > :: <a href="#"
>SomeType</a
- > f a -&gt; <a href=""
+ > f a -&gt; <a href="#"
>SomeType</a
- > f b -&gt; <a href=""
+ > f b -&gt; <a href="#"
>SomeType</a
- > f b</p
+ > f b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>(&lt;*)</a
- > :: <a href=""
+ > :: <a href="#"
>SomeType</a
- > f a -&gt; <a href=""
+ > f a -&gt; <a href="#"
>SomeType</a
- > f b -&gt; <a href=""
+ > f b -&gt; <a href="#"
>SomeType</a
- > f a</p
+ > f a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -191,11 +210,7 @@ Fix spurious superclass constraints bug.</pre
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TH.html b/html-test/ref/TH.html
index e72c2189..74c2d60f 100644
--- a/html-test/ref/TH.html
+++ b/html-test/ref/TH.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TH</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TH.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TH.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,18 +47,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_TH.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:decl" class="def"
+ ><a id="v:decl" class="def"
>decl</a
- > :: Q [Dec]</p
+ > :: Q [Dec] <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TH2.html b/html-test/ref/TH2.html
index cf896bac..024574a1 100644
--- a/html-test/ref/TH2.html
+++ b/html-test/ref/TH2.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TH2</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TH2.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TH2.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,18 +47,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_TH2.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: t -&gt; t</p
+ > :: t -&gt; t <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Test.html b/html-test/ref/Test.html
index 8b82fe0b..4cb434ad 100644
--- a/html-test/ref/Test.html
+++ b/html-test/ref/Test.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Test</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Test.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -76,53 +77,53 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
>Contents</p
><ul
><li
- ><a href=""
+ ><a href="#"
>Type declarations</a
><ul
><li
- ><a href=""
+ ><a href="#"
>Data types</a
></li
><li
- ><a href=""
+ ><a href="#"
>Records</a
></li
></ul
></li
><li
- ><a href=""
+ ><a href="#"
>Class declarations</a
></li
><li
- ><a href=""
+ ><a href="#"
>Function types</a
></li
><li
- ><a href=""
+ ><a href="#"
>Auxiliary stuff</a
></li
><li
- ><a href=""
+ ><a href="#"
>A hidden module</a
></li
><li
- ><a href=""
+ ><a href="#"
>A visible module</a
></li
><li
- ><a href=""
+ ><a href="#"
>Existential / Universal types</a
></li
><li
- ><a href=""
+ ><a href="#"
>Type signatures with argument docs</a
></li
><li
- ><a href=""
+ ><a href="#"
>A section</a
><ul
><li
- ><a href=""
+ ><a href="#"
>A subsection</a
></li
></ul
@@ -136,19 +137,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p
>This module illustrates &amp; tests most of the features of Haddock.
Testing references from the description: <code
- ><a href=""
+ ><a href="#"
>T</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>f</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>g</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>visible</a
></code
>.</p
@@ -161,29 +162,29 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T</a
> a b<ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>A</a
- > <a href=""
+ > <a href="#"
>Int</a
- > (<a href=""
+ > (<a href="#"
>Maybe</a
- > <a href=""
+ > <a href="#"
>Float</a
>)</li
><li
- >| <a href=""
+ >| <a href="#"
>B</a
- > (<a href=""
+ > (<a href="#"
>T</a
- > a b, <a href=""
+ > a b, <a href="#"
>T</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Float</a
>)</li
></ul
@@ -191,21 +192,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T2</a
> a b</li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T3</a
> a b<ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>A1</a
> a</li
><li
- >| <a href=""
+ >| <a href="#"
>B1</a
> b</li
></ul
@@ -213,15 +214,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T4</a
> a b<ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>A2</a
> a</li
><li
- >| <a href=""
+ >| <a href="#"
>B2</a
> b</li
></ul
@@ -229,15 +230,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T5</a
> a b<ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>A3</a
> a</li
><li
- >| <a href=""
+ >| <a href="#"
>B3</a
> b</li
></ul
@@ -245,19 +246,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>T6</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>A4</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>B4</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>C4</a
></li
></ul
@@ -265,21 +266,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N1</a
- > a = <a href=""
+ > a = <a href="#"
>N1</a
> a</li
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N2</a
- > a b = <a href=""
+ > a b = <a href="#"
>N2</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>n</a
> :: a b</li
></ul
@@ -287,13 +288,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N3</a
- > a b = <a href=""
+ > a b = <a href="#"
>N3</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>n3</a
> :: a b</li
></ul
@@ -301,19 +302,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>N4</a
> a b</li
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N5</a
- > a b = <a href=""
+ > a b = <a href="#"
>N5</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>n5</a
> :: a b</li
></ul
@@ -321,13 +322,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N6</a
- > a b = <a href=""
+ > a b = <a href="#"
>N6</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>n6</a
> :: a b</li
></ul
@@ -335,13 +336,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>newtype</span
- > <a href=""
+ > <a href="#"
>N7</a
- > a b = <a href=""
+ > a b = <a href="#"
>N7</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>n7</a
> :: a b</li
></ul
@@ -349,69 +350,69 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>R</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>C1</a
> { <ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>p</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li
- ><a href=""
+ ><a href="#"
>q</a
> :: <span class="keyword"
>forall</span
> a. a -&gt; a</li
><li
- ><a href=""
+ ><a href="#"
>r</a
- >, <a href=""
+ >, <a href="#"
>s</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
> }</li
><li
- >| <a href=""
+ >| <a href="#"
>C2</a
> { <ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>t</a
- > :: T1 -&gt; <a href=""
+ > :: T1 -&gt; <a href="#"
>T2</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T3</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T4</a
- > <a href=""
+ > <a href="#"
>Float</a
- > <a href=""
+ > <a href="#"
>Float</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T5</a
> () ()</li
><li
- ><a href=""
+ ><a href="#"
>u</a
- >, <a href=""
+ >, <a href="#"
>v</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -421,27 +422,27 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>R1</a
- > = <a href=""
+ > = <a href="#"
>C3</a
> {<ul class="subs"
><li
- ><a href=""
+ ><a href="#"
>s1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li
- ><a href=""
+ ><a href="#"
>s2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li
- ><a href=""
+ ><a href="#"
>s3</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -449,123 +450,101 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>D</a
- > a =&gt; <a href=""
+ > a =&gt; <a href="#"
>C</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >a</a
- > :: <a href=""
- >IO</a
- > a</li
- ><li
- ><a href=""
- >b</a
- > :: [a]</li
- ></ul
+ ></ul
></li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>D</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >d</a
- > :: <a href=""
- >T</a
- > a b</li
- ><li
- ><a href=""
- >e</a
- > :: (a, a)</li
- ></ul
+ ></ul
></li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>E</a
> a</li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>F</a
> a <span class="keyword"
>where</span
><ul class="subs"
- ><li
- ><a href=""
- >ff</a
- > :: a</li
- ></ul
+ ></ul
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
+ >a</a
+ > :: <a href="#"
+ >C</a
+ > a =&gt; <a href="#"
+ >IO</a
+ > a</li
+ ><li class="src short"
+ ><a href="#"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>C</a
- > a =&gt; a -&gt; <a href=""
+ > a =&gt; a -&gt; <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>g</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>IO</a
> CInt</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>hidden</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Int</a
></li
><li class="src short"
- >module <a href=""
+ >module <a href="#"
>Visible</a
></li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Ex</a
> a<ul class="subs"
><li
- >= <span class="keyword"
- >forall</span
- > b . <a href=""
+ >= <a href="#"
>C</a
- > b =&gt; <a href=""
+ > b =&gt; <a href="#"
>Ex1</a
> b</li
><li
- >| <span class="keyword"
- >forall</span
- > b . <a href=""
+ >| <a href="#"
>Ex2</a
> b</li
><li
- >| <span class="keyword"
- >forall</span
- > b . <a href=""
+ >| <a href="#"
>C</a
- > a =&gt; <a href=""
+ > a =&gt; <a href="#"
>Ex3</a
> b</li
><li
- >| <a href=""
+ >| <a href="#"
>Ex4</a
> (<span class="keyword"
>forall</span
@@ -573,83 +552,83 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></ul
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>k</a
- > :: <a href=""
+ > :: <a href="#"
>T</a
- > () () -&gt; <a href=""
+ > () () -&gt; <a href="#"
>T2</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
- > -&gt; (<a href=""
+ > -&gt; (<a href="#"
>T3</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T4</a
- > <a href=""
+ > <a href="#"
>Float</a
- > <a href=""
+ > <a href="#"
>Float</a
- >) -&gt; <a href=""
+ >) -&gt; <a href="#"
>T5</a
- > () () -&gt; <a href=""
+ > () () -&gt; <a href="#"
>IO</a
> ()</li
><li class="src short"
- ><a href=""
+ ><a href="#"
>l</a
- > :: (<a href=""
+ > :: (<a href="#"
>Int</a
- >, <a href=""
+ >, <a href="#"
>Int</a
- >, <a href=""
+ >, <a href="#"
>Float</a
- >) -&gt; <a href=""
+ >) -&gt; <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>m</a
- > :: <a href=""
+ > :: <a href="#"
>R</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>N1</a
- > () -&gt; <a href=""
+ > () -&gt; <a href="#"
>IO</a
- > <a href=""
+ > <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>o</a
- > :: <a href=""
+ > :: <a href="#"
>Float</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>IO</a
- > <a href=""
+ > <a href="#"
>Float</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>f'</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>withType</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>withoutType</a
- > :: t</li
+ > :: a</li
></ul
></div
><div id="interface"
@@ -661,9 +640,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T" class="def"
+ > <a id="t:T" class="def"
>T</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>This comment applies to the <em
@@ -677,19 +658,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A" class="def"
+ ><a id="v:A" class="def"
>A</a
- > <a href=""
+ > <a href="#"
>Int</a
- > (<a href=""
+ > (<a href="#"
>Maybe</a
- > <a href=""
+ > <a href="#"
>Float</a
>)</td
><td class="doc"
><p
>This comment describes the <code
- ><a href=""
+ ><a href="#"
>A</a
></code
> constructor</p
@@ -697,21 +678,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:B" class="def"
+ ><a id="v:B" class="def"
>B</a
- > (<a href=""
+ > (<a href="#"
>T</a
- > a b, <a href=""
+ > a b, <a href="#"
>T</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Float</a
>)</td
><td class="doc"
><p
>This comment describes the <code
- ><a href=""
+ ><a href="#"
>B</a
></code
> constructor</p
@@ -724,9 +705,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T2" class="def"
+ > <a id="t:T2" class="def"
>T2</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>An abstract data declaration</p
@@ -736,9 +719,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T3" class="def"
+ > <a id="t:T3" class="def"
>T3</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A data declaration with no documentation annotations on the constructors</p
@@ -749,19 +734,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A1" class="def"
+ ><a id="v:A1" class="def"
>A1</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:B1" class="def"
+ ><a id="v:B1" class="def"
>B1</a
> b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -770,28 +755,30 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T4" class="def"
+ > <a id="t:T4" class="def"
>T4</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:A2" class="def"
+ ><a id="v:A2" class="def"
>A2</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:B2" class="def"
+ ><a id="v:B2" class="def"
>B2</a
> b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -800,22 +787,24 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T5" class="def"
+ > <a id="t:T5" class="def"
>T5</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:A3" class="def"
+ ><a id="v:A3" class="def"
>A3</a
> a</td
><td class="doc"
><p
>documents <code
- ><a href=""
+ ><a href="#"
>A3</a
></code
></p
@@ -823,13 +812,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:B3" class="def"
+ ><a id="v:B3" class="def"
>B3</a
> b</td
><td class="doc"
><p
>documents <code
- ><a href=""
+ ><a href="#"
>B3</a
></code
></p
@@ -842,8 +831,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:T6" class="def"
+ > <a id="t:T6" class="def"
>T6</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -855,13 +846,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:A4" class="def"
+ ><a id="v:A4" class="def"
>A4</a
></td
><td class="doc"
><p
>This is the doc for <code
- ><a href=""
+ ><a href="#"
>A4</a
></code
></p
@@ -869,13 +860,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:B4" class="def"
+ ><a id="v:B4" class="def"
>B4</a
></td
><td class="doc"
><p
>This is the doc for <code
- ><a href=""
+ ><a href="#"
>B4</a
></code
></p
@@ -883,13 +874,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:C4" class="def"
+ ><a id="v:C4" class="def"
>C4</a
></td
><td class="doc"
><p
>This is the doc for <code
- ><a href=""
+ ><a href="#"
>C4</a
></code
></p
@@ -902,9 +893,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N1" class="def"
+ > <a id="t:N1" class="def"
>N1</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A newtype</p
@@ -915,11 +908,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:N1" class="def"
+ ><a id="v:N1" class="def"
>N1</a
> a</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -928,9 +921,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N2" class="def"
+ > <a id="t:N2" class="def"
>N2</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A newtype with a fieldname</p
@@ -941,11 +936,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:N2" class="def"
+ ><a id="v:N2" class="def"
>N2</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -955,11 +950,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:n" class="def"
+ ><a id="v:n" class="def"
>n</a
> :: a b</dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -972,9 +967,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N3" class="def"
+ > <a id="t:N3" class="def"
>N3</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A newtype with a fieldname, documentation on the field</p
@@ -985,11 +982,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:N3" class="def"
+ ><a id="v:N3" class="def"
>N3</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -999,13 +996,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:n3" class="def"
+ ><a id="v:n3" class="def"
>n3</a
> :: a b</dfn
><div class="doc"
><p
>this is the <code
- ><a href=""
+ ><a href="#"
>n3</a
></code
> field</p
@@ -1022,9 +1019,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:N4" class="def"
+ > <a id="t:N4" class="def"
>N4</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>An abstract newtype - we show this one as data rather than newtype because
@@ -1035,20 +1034,22 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N5" class="def"
+ > <a id="t:N5" class="def"
>N5</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:N5" class="def"
+ ><a id="v:N5" class="def"
>N5</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -1058,7 +1059,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:n5" class="def"
+ ><a id="v:n5" class="def"
>n5</a
> :: a b</dfn
><div class="doc"
@@ -1077,16 +1078,18 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N6" class="def"
+ > <a id="t:N6" class="def"
>N6</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:N6" class="def"
+ ><a id="v:N6" class="def"
>N6</a
></td
><td class="doc"
@@ -1102,11 +1105,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:n6" class="def"
+ ><a id="v:n6" class="def"
>n6</a
> :: a b</dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -1119,9 +1122,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:N7" class="def"
+ > <a id="t:N7" class="def"
>N7</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>docs on the newtype and the constructor</p
@@ -1132,13 +1137,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:N7" class="def"
+ ><a id="v:N7" class="def"
>N7</a
></td
><td class="doc"
><p
>The <code
- ><a href=""
+ ><a href="#"
>N7</a
></code
> constructor</p
@@ -1152,11 +1157,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:n7" class="def"
+ ><a id="v:n7" class="def"
>n7</a
> :: a b</dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -1171,30 +1176,32 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:R" class="def"
+ > <a id="t:R" class="def"
>R</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>This is the documentation for the <code
- ><a href=""
+ ><a href="#"
>R</a
></code
> record, which has four fields,
<code
- ><a href=""
+ ><a href="#"
>p</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>q</a
></code
>, <code
- ><a href=""
+ ><a href="#"
>r</a
></code
>, and <code
- ><a href=""
+ ><a href="#"
>s</a
></code
>.</p
@@ -1205,13 +1212,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:C1" class="def"
+ ><a id="v:C1" class="def"
>C1</a
></td
><td class="doc"
><p
>This is the <code
- ><a href=""
+ ><a href="#"
>C1</a
></code
> record constructor, with the following fields:</p
@@ -1225,15 +1232,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:p" class="def"
+ ><a id="v:p" class="def"
>p</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
><p
>This comment applies to the <code
- ><a href=""
+ ><a href="#"
>p</a
></code
> field</p
@@ -1241,7 +1248,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:q" class="def"
+ ><a id="v:q" class="def"
>q</a
> :: <span class="keyword"
>forall</span
@@ -1249,7 +1256,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><div class="doc"
><p
>This comment applies to the <code
- ><a href=""
+ ><a href="#"
>q</a
></code
> field</p
@@ -1257,21 +1264,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:r" class="def"
+ ><a id="v:r" class="def"
>r</a
- >, <a href="" id="v:s" class="def"
+ >, <a id="v:s" class="def"
>s</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
><p
>This comment applies to both <code
- ><a href=""
+ ><a href="#"
>r</a
></code
> and <code
- ><a href=""
+ ><a href="#"
>s</a
></code
></p
@@ -1283,13 +1290,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:C2" class="def"
+ ><a id="v:C2" class="def"
>C2</a
></td
><td class="doc"
><p
>This is the <code
- ><a href=""
+ ><a href="#"
>C2</a
></code
> record constructor, also with some fields:</p
@@ -1303,43 +1310,43 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:t" class="def"
+ ><a id="v:t" class="def"
>t</a
- > :: T1 -&gt; <a href=""
+ > :: T1 -&gt; <a href="#"
>T2</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T3</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T4</a
- > <a href=""
+ > <a href="#"
>Float</a
- > <a href=""
+ > <a href="#"
>Float</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T5</a
> () ()</dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
><li
><dfn class="src"
- ><a href="" id="v:u" class="def"
+ ><a id="v:u" class="def"
>u</a
- >, <a href="" id="v:v" class="def"
+ >, <a id="v:v" class="def"
>v</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -1352,8 +1359,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:R1" class="def"
+ > <a id="t:R1" class="def"
>R1</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -1365,13 +1374,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:C3" class="def"
+ ><a id="v:C3" class="def"
>C3</a
></td
><td class="doc"
><p
>This is the <code
- ><a href=""
+ ><a href="#"
>C3</a
></code
> record constructor</p
@@ -1385,15 +1394,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><ul
><li
><dfn class="src"
- ><a href="" id="v:s1" class="def"
+ ><a id="v:s1" class="def"
>s1</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
><p
>The <code
- ><a href=""
+ ><a href="#"
>s1</a
></code
> record selector</p
@@ -1401,15 +1410,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:s2" class="def"
+ ><a id="v:s2" class="def"
>s2</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
><p
>The <code
- ><a href=""
+ ><a href="#"
>s2</a
></code
> record selector</p
@@ -1417,15 +1426,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
></li
><li
><dfn class="src"
- ><a href="" id="v:s3" class="def"
+ ><a id="v:s3" class="def"
>s3</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></dfn
><div class="doc"
><p
>The <code
- ><a href=""
+ ><a href="#"
>s3</a
></code
> record selector</p
@@ -1448,48 +1457,64 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>D</a
- > a =&gt; <a href="" id="t:C" class="def"
+ > a =&gt; <a id="t:C" class="def"
>C</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>This comment applies to the <em
>previous</em
> declaration (the <code
- ><a href=""
+ ><a href="#"
>C</a
></code
> class)</p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >a</a
+ >, <a href="#"
+ >b</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:a" class="def"
+ ><a id="v:a" class="def"
>a</a
- > :: <a href=""
+ > :: <a href="#"
>IO</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>this is a description of the <code
- ><a href=""
+ ><a href="#"
>a</a
></code
> method</p
></div
><p class="src"
- ><a href="" id="v:b" class="def"
+ ><a id="v:b" class="def"
>b</a
- > :: [a]</p
+ > :: [a] <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>this is a description of the <code
- ><a href=""
+ ><a href="#"
>b</a
></code
> method</p
@@ -1500,28 +1525,44 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:D" class="def"
+ > <a id="t:D" class="def"
>D</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>This is a class declaration with no separate docs for the methods</p
></div
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >d</a
+ >, <a href="#"
+ >e</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:d" class="def"
+ ><a id="v:d" class="def"
>d</a
- > :: <a href=""
+ > :: <a href="#"
>T</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href="" id="v:e" class="def"
+ ><a id="v:e" class="def"
>e</a
- > :: (a, a)</p
+ > :: (a, a) <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="subs instances"
><p id="control.i:D" class="caption collapser" onclick="toggleSection('i:D')"
@@ -1533,14 +1574,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><span class="inst-left"
><span id="control.i:ic:D:D:1" class="instance expander" onclick="toggleSection('i:ic:D:D:1')"
></span
- > <a href=""
+ > <a href="#"
>D</a
- > <a href=""
+ > <a href="#"
>Float</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -1549,21 +1592,25 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>d</a
- > :: <a href=""
+ > :: <a href="#"
>T</a
- > <a href=""
+ > <a href="#"
>Float</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>e</a
- > :: (<a href=""
+ > :: (<a href="#"
>Float</a
- >, <a href=""
+ >, <a href="#"
>Float</a
- >)</p
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -1573,14 +1620,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><span class="inst-left"
><span id="control.i:ic:D:D:2" class="instance expander" onclick="toggleSection('i:ic:D:D:2')"
></span
- > <a href=""
+ > <a href="#"
>D</a
- > <a href=""
+ > <a href="#"
>Int</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -1589,21 +1638,25 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="caption"
>Methods</p
><p class="src"
- ><a href=""
+ ><a href="#"
>d</a
- > :: <a href=""
+ > :: <a href="#"
>T</a
- > <a href=""
+ > <a href="#"
>Int</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
- ><a href=""
+ ><a href="#"
>e</a
- > :: (<a href=""
+ > :: (<a href="#"
>Int</a
- >, <a href=""
+ >, <a href="#"
>Int</a
- >)</p
+ >) <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -1616,9 +1669,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:E" class="def"
+ > <a id="t:E" class="def"
>E</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>This is a class declaration with no methods (or no methods exported)</p
@@ -1634,44 +1689,78 @@ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:F" class="def"
+ > <a id="t:F" class="def"
>F</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >ff</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:ff" class="def"
+ ><a id="v:ff" class="def"
>ff</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
><div class="doc"
><p
>Test that we can export a class method on its own:</p
></div
+ ><div class="top"
+ ><p class="src"
+ ><a id="v:a" class="def"
+ >a</a
+ > :: <a href="#"
+ >C</a
+ > a =&gt; <a href="#"
+ >IO</a
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >this is a description of the <code
+ ><a href="#"
+ >a</a
+ ></code
+ > method</p
+ ></div
+ ></div
><h1 id="g:5"
>Function types</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>C</a
- > a =&gt; a -&gt; <a href=""
+ > a =&gt; a -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>In a comment string we can refer to identifiers in scope with
single quotes like this: <code
- ><a href=""
+ ><a href="#"
>T</a
></code
>, and we can refer to modules by
-using double quotes: <a href=""
+using double quotes: <a href="#"
>Foo</a
>. We can add emphasis <em
>like this</em
@@ -1700,7 +1789,7 @@ using double quotes: <a href=""
></dl
><pre
> This is a block of code, which can include other markup: <code
- ><a href=""
+ ><a href="#"
>R</a
></code
>
@@ -1711,20 +1800,22 @@ using double quotes: <a href=""
><pre
>this is another block of code</pre
><p
- >We can also include URLs in documentation: <a href=""
+ >We can also include URLs in documentation: <a href="#"
>http://www.haskell.org/</a
>.</p
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>IO</a
- > CInt</p
+ > CInt <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>we can export foreign declarations too</p
@@ -1734,24 +1825,16 @@ using double quotes: <a href=""
>Auxiliary stuff</h1
><div class="doc"
><p
- >This is some documentation that is attached to a name ($aux1)
- rather than a source declaration. The documentation may be
- referred to in the export list using its name.</p
- ><pre
- > code block in named doc</pre
+ >This is some documentation that is attached to a name ($aux1)</p
></div
><div class="doc"
><p
>This is some documentation that is attached to a name ($aux2)</p
></div
- ><div class="doc"
- ><pre
- > code block on its own in named doc</pre
- ></div
- ><div class="doc"
- ><pre
- > code block on its own in named doc (after newline)</pre
- ></div
+ ><div class="doc empty"
+ ></div
+ ><div class="doc empty"
+ ></div
><div class="doc"
><p
>a nested, named doc comment</p
@@ -1809,12 +1892,8 @@ test4</pre
test2
</pre
></div
- ><div class="doc"
- ><pre
- >foo</pre
- ><pre
- >bar</pre
- ></div
+ ><div class="doc empty"
+ ></div
><div class="doc"
><p
>This is some inline documentation in the export list</p
@@ -1827,19 +1906,21 @@ is at the beginning of the line).</pre
>A hidden module</h1
><div class="top"
><p class="src"
- ><a href="" id="v:hidden" class="def"
+ ><a id="v:hidden" class="def"
>hidden</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
><h1 id="g:8"
>A visible module</h1
><div class="top"
><p class="src"
- >module <a href=""
+ >module <a href="#"
>Visible</a
></p
></div
@@ -1853,9 +1934,11 @@ is at the beginning of the line).</pre
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Ex" class="def"
+ > <a id="t:Ex" class="def"
>Ex</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A data-type using existential/universal types</p
@@ -1866,47 +1949,41 @@ is at the beginning of the line).</pre
><table
><tr
><td class="src"
- ><span class="keyword"
- >forall</span
- > b . <a href=""
+ ><a href="#"
>C</a
- > b =&gt; <a href="" id="v:Ex1" class="def"
+ > b =&gt; <a id="v:Ex1" class="def"
>Ex1</a
> b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><span class="keyword"
- >forall</span
- > b . <a href="" id="v:Ex2" class="def"
+ ><a id="v:Ex2" class="def"
>Ex2</a
> b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><span class="keyword"
- >forall</span
- > b . <a href=""
+ ><a href="#"
>C</a
- > a =&gt; <a href="" id="v:Ex3" class="def"
+ > a =&gt; <a id="v:Ex3" class="def"
>Ex3</a
> b</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:Ex4" class="def"
+ ><a id="v:Ex4" class="def"
>Ex4</a
> (<span class="keyword"
>forall</span
> a. a -&gt; a)</td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -1915,8 +1992,10 @@ is at the beginning of the line).</pre
>Type signatures with argument docs</h1
><div class="top"
><p class="src"
- ><a href="" id="v:k" class="def"
+ ><a id="v:k" class="def"
>k</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -1924,13 +2003,13 @@ is at the beginning of the line).</pre
><table
><tr
><td class="src"
- >:: <a href=""
+ >:: <a href="#"
>T</a
> () ()</td
><td class="doc"
><p
>This argument has type <code
- ><a href=""
+ ><a href="#"
>T</a
></code
></p
@@ -1938,11 +2017,11 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>T2</a
- > <a href=""
+ > <a href="#"
>Int</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc"
@@ -1952,17 +2031,17 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; (<a href=""
+ >-&gt; (<a href="#"
>T3</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > <a href=""
+ > <a href="#"
>Bool</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>T4</a
- > <a href=""
+ > <a href="#"
>Float</a
- > <a href=""
+ > <a href="#"
>Float</a
>)</td
><td class="doc"
@@ -1974,7 +2053,7 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>T5</a
> () ()</td
><td class="doc"
@@ -1986,7 +2065,7 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>IO</a
> ()</td
><td class="doc"
@@ -2003,8 +2082,10 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:l" class="def"
+ ><a id="v:l" class="def"
>l</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -2012,11 +2093,11 @@ is at the beginning of the line).</pre
><table
><tr
><td class="src"
- >:: (<a href=""
+ >:: (<a href="#"
>Int</a
- >, <a href=""
+ >, <a href="#"
>Int</a
- >, <a href=""
+ >, <a href="#"
>Float</a
>)</td
><td class="doc"
@@ -2026,13 +2107,13 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>Int</a
></td
><td class="doc"
><p
>returns an <code
- ><a href=""
+ ><a href="#"
>Int</a
></code
></p
@@ -2043,8 +2124,10 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:m" class="def"
+ ><a id="v:m" class="def"
>m</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -2052,15 +2135,15 @@ is at the beginning of the line).</pre
><table
><tr
><td class="src"
- >:: <a href=""
+ >:: <a href="#"
>R</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>N1</a
> ()</td
><td class="doc"
@@ -2070,9 +2153,9 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>IO</a
- > <a href=""
+ > <a href="#"
>Int</a
></td
><td class="doc"
@@ -2089,8 +2172,10 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:o" class="def"
+ ><a id="v:o" class="def"
>o</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="subs arguments"
><p class="caption"
@@ -2098,7 +2183,7 @@ is at the beginning of the line).</pre
><table
><tr
><td class="src"
- >:: <a href=""
+ >:: <a href="#"
>Float</a
></td
><td class="doc"
@@ -2108,9 +2193,9 @@ is at the beginning of the line).</pre
></tr
><tr
><td class="src"
- >-&gt; <a href=""
+ >-&gt; <a href="#"
>IO</a
- > <a href=""
+ > <a href="#"
>Float</a
></td
><td class="doc"
@@ -2139,15 +2224,17 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f-39-" class="def"
+ ><a id="v:f-39-" class="def"
>f'</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>a function with a prime can be referred to as <code
- ><a href=""
+ ><a href="#"
>f'</a
></code
>
@@ -2156,10 +2243,12 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:withType" class="def"
+ ><a id="v:withType" class="def"
>withType</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -2168,9 +2257,11 @@ is at the beginning of the line).</pre
></div
><div class="top"
><p class="src"
- ><a href="" id="v:withoutType" class="def"
+ ><a id="v:withoutType" class="def"
>withoutType</a
- > :: t</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Comment on a definition without type signature</p
@@ -2179,11 +2270,7 @@ is at the beginning of the line).</pre
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Threaded.html b/html-test/ref/Threaded.html
index 1f54b9ea..8c2261b1 100644
--- a/html-test/ref/Threaded.html
+++ b/html-test/ref/Threaded.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Threaded</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Threaded.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Threaded.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,9 +57,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Threaded.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
></li
></ul
@@ -68,10 +69,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Threaded.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -84,11 +87,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Threaded.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Threaded_TH.html b/html-test/ref/Threaded_TH.html
new file mode 100644
index 00000000..2140d5b7
--- /dev/null
+++ b/html-test/ref/Threaded_TH.html
@@ -0,0 +1,90 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><title
+ >Threaded_TH</title
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
+ /><script src="haddock-util.js" type="text/javascript"
+ ></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
+ ><script type="text/javascript"
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Threaded_TH.html&quot;);};
+//
+</script
+ ></head
+ ><body
+ ><div id="package-header"
+ ><ul class="links" id="page-menu"
+ ><li
+ ><a href="#"
+ >Contents</a
+ ></li
+ ><li
+ ><a href="#"
+ >Index</a
+ ></li
+ ></ul
+ ><p class="caption empty"
+ ></p
+ ></div
+ ><div id="content"
+ ><div id="module-header"
+ ><table class="info"
+ ><tr
+ ><th
+ >Safe Haskell</th
+ ><td
+ >None</td
+ ></tr
+ ></table
+ ><p class="caption"
+ >Threaded_TH</p
+ ></div
+ ><div id="description"
+ ><p class="caption"
+ >Description</p
+ ><div class="doc"
+ ><p
+ >Imported by <code
+ >Threaded</code
+ >, since a TH splice can't be used in the
+ module where it is defined.</p
+ ></div
+ ></div
+ ><div id="synopsis"
+ ><p id="control.syn" class="caption expander" onclick="toggleSection('syn')"
+ >Synopsis</p
+ ><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
+ ><li class="src short"
+ ><a href="#"
+ >forkTH</a
+ > :: Q Exp</li
+ ></ul
+ ></div
+ ><div id="interface"
+ ><h1
+ >Documentation</h1
+ ><div class="top"
+ ><p class="src"
+ ><a id="v:forkTH" class="def"
+ >forkTH</a
+ > :: Q Exp <a href="#" class="selflink"
+ >#</a
+ ></p
+ ><div class="doc"
+ ><p
+ >forkOS requires the threaded RTS, so this TH fails if haddock was
+ built without <code
+ >-threaded</code
+ >.</p
+ ></div
+ ></div
+ ></div
+ ></div
+ ><div id="footer"
+ ></div
+ ></body
+ ></html
+> \ No newline at end of file
diff --git a/html-test/ref/Ticket112.html b/html-test/ref/Ticket112.html
index 4aefb488..6f42cff6 100644
--- a/html-test/ref/Ticket112.html
+++ b/html-test/ref/Ticket112.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Ticket112</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Ticket112.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Ticket112.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,7 +47,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket112.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
> :: a</li
></ul
@@ -56,13 +57,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket112.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>...given a raw <code
- ><a href=""
+ ><a href="#"
>Addr#</a
></code
> to the string, and the length of the string.</p
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket112.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Ticket61.html b/html-test/ref/Ticket61.html
index aeb3c022..e4ff49be 100644
--- a/html-test/ref/Ticket61.html
+++ b/html-test/ref/Ticket61.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Ticket61</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Ticket61.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Ticket61.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,18 +49,30 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket61.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:C" class="def"
+ > <a id="t:C" class="def"
>C</a
> a <span class="keyword"
>where</span
+ > <a href="#" class="selflink"
+ >#</a
></p
+ ><div class="subs minimal"
+ ><p class="caption"
+ >Minimal complete definition</p
+ ><p class="src"
+ ><a href="#"
+ >f</a
+ ></p
+ ></div
><div class="subs methods"
><p class="caption"
>Methods</p
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: a</p
+ > :: a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>A comment about f</p
@@ -69,11 +82,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket61.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Ticket75.html b/html-test/ref/Ticket75.html
index 169b0522..79678466 100644
--- a/html-test/ref/Ticket75.html
+++ b/html-test/ref/Ticket75.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Ticket75</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Ticket75.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Ticket75.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,15 +49,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket75.html");};
><li class="src short"
><span class="keyword"
>data</span
- > a <a href=""
+ > a <a href="#"
>:-</a
- > b = <a href=""
+ > b = <a href="#"
>Q</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -68,35 +69,39 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket75.html");};
><p class="src"
><span class="keyword"
>data</span
- > a <a href="" id="t::-45-" class="def"
+ > a <a id="t::-45-" class="def"
>:-</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:Q" class="def"
+ ><a id="v:Q" class="def"
>Q</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>A reference to <code
- ><a href=""
+ ><a href="#"
>:-</a
></code
></p
@@ -105,11 +110,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Ticket75.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TitledPicture.html b/html-test/ref/TitledPicture.html
index 3aac9689..61170750 100644
--- a/html-test/ref/TitledPicture.html
+++ b/html-test/ref/TitledPicture.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TitledPicture</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TitledPicture.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TitledPicture.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,15 +47,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TitledPicture.html");}
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
></li
><li class="src short"
- ><a href=""
+ ><a href="#"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
></li
></ul
@@ -64,15 +65,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_TitledPicture.html");}
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:foo" class="def"
+ ><a id="v:foo" class="def"
>foo</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>Picture for <code
- ><a href=""
+ ><a href="#"
>foo</a
></code
> without a title <img src="bar"
@@ -81,15 +84,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_TitledPicture.html");}
></div
><div class="top"
><p class="src"
- ><a href="" id="v:bar" class="def"
+ ><a id="v:bar" class="def"
>bar</a
- > :: <a href=""
+ > :: <a href="#"
>Integer</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
>Picture for <code
- ><a href=""
+ ><a href="#"
>bar</a
></code
> with title <img src="un&#8739;&#8705;&#8728;" title="&#948;&#8712;"
@@ -99,11 +104,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TitledPicture.html");}
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TypeFamilies.html b/html-test/ref/TypeFamilies.html
index 3295318f..f96ad89e 100644
--- a/html-test/ref/TypeFamilies.html
+++ b/html-test/ref/TypeFamilies.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TypeFamilies</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TypeFamilies.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -56,19 +57,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>X</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>X</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>XX</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>XXX</a
></li
></ul
@@ -76,21 +77,21 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Y</a
></li
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Z</a
><ul class="subs"
><li
- >= <a href=""
+ >= <a href="#"
>ZA</a
></li
><li
- >| <a href=""
+ >| <a href="#"
>ZB</a
></li
></ul
@@ -98,25 +99,27 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>Test</a
> a</li
><li class="src short"
><span class="keyword"
>type family</span
- > <a href=""
+ > <a href="#"
>Foo</a
> a :: k</li
><li class="src short"
><span class="keyword"
>data family</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > a :: *</li
+ > a :: <a href="#"
+ >*</a
+ ></li
><li class="src short"
><span class="keyword"
>class</span
- > <a href=""
+ > <a href="#"
>Assoc</a
> a <span class="keyword"
>where</span
@@ -124,33 +127,37 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><li
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > a :: *</li
+ > a :: <a href="#"
+ >*</a
+ ></li
><li
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > a :: *</li
+ > a :: <a href="#"
+ >*</a
+ ></li
></ul
></li
><li class="src short"
><span class="keyword"
>type family</span
- > <a href=""
+ > <a href="#"
>Bar</a
> b</li
><li class="src short"
><span class="keyword"
>type family</span
- > a <a href=""
+ > a <a href="#"
>&lt;&gt;</a
> b :: k</li
><li class="src short"
><span class="keyword"
>class</span
- > a <a href=""
+ > a <a href="#"
>&gt;&lt;</a
> b</li
></ul
@@ -162,8 +169,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:X" class="def"
+ > <a id="t:X" class="def"
>X</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -175,7 +184,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:X" class="def"
+ ><a id="v:X" class="def"
>X</a
></td
><td class="doc"
@@ -185,7 +194,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:XX" class="def"
+ ><a id="v:XX" class="def"
>XX</a
></td
><td class="doc"
@@ -195,7 +204,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
></tr
><tr
><td class="src"
- ><a href="" id="v:XXX" class="def"
+ ><a id="v:XXX" class="def"
>XXX</a
></td
><td class="doc"
@@ -213,13 +222,43 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span id="control.i:id:X:Assoc:1" class="instance expander" onclick="toggleSection('i:id:X:Assoc:1')"
+ ><span id="control.i:id:X:-62--60-:1" class="instance expander" onclick="toggleSection('i:id:X:-62--60-:1')"
+ ></span
+ > <a href="#"
+ >(&gt;&lt;)</a
+ > <a href="#"
+ >X</a
+ > <a href="#"
+ >XX</a
+ > <a href="#"
+ >XXX</a
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
+ ></td
+ ><td class="doc empty"
+ ></td
+ ></tr
+ ><tr
+ ><td colspan="2"
+ ><div id="section.i:id:X:-62--60-:1" class="inst-details hide"
+ ></div
+ ></td
+ ></tr
+ ><tr
+ ><td class="src clearfix"
+ ><span class="inst-left"
+ ><span id="control.i:id:X:Assoc:2" class="instance expander" onclick="toggleSection('i:id:X:Assoc:2')"
></span
- > <a href=""
+ > <a href="#"
>Assoc</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -228,26 +267,38 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
></tr
><tr
><td colspan="2"
- ><div id="section.i:id:X:Assoc:1" class="inst-details hide"
+ ><div id="section.i:id:X:Assoc:2" class="inst-details hide"
><div class="subs associated-types"
><p class="caption"
>Associated Types</p
><p class="src"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > (<a href=""
+ > <a href="#"
>X</a
- > :: k)</p
+ > (a :: <a href="#"
+ >X</a
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > (<a href=""
+ > <a href="#"
+ >X</a
+ > (a :: <a href="#"
>X</a
- > :: k) :: *</p
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -255,13 +306,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span id="control.i:id:X:Test:2" class="instance expander" onclick="toggleSection('i:id:X:Test:2')"
+ ><span id="control.i:id:X:Test:3" class="instance expander" onclick="toggleSection('i:id:X:Test:3')"
></span
- > <a href=""
+ > <a href="#"
>Test</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -270,122 +325,134 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
></tr
><tr
><td colspan="2"
- ><div id="section.i:id:X:Test:2" class="inst-details hide"
+ ><div id="section.i:id:X:Test:3" class="inst-details hide"
></div
></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
- ><span id="control.i:id:X:-62--60-:3" class="instance expander" onclick="toggleSection('i:id:X:-62--60-:3')"
- ></span
- > <a href=""
- >(&gt;&lt;)</a
- > <a href=""
+ ><span class="keyword"
+ >type</span
+ > <a href="#"
+ >Foo</a
+ > <a href="#"
>X</a
- > <a href=""
- >XX</a
- > <a href=""
- >XXX</a
+ > = <a href="#"
+ >Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
- ></tr
- ><tr
- ><td colspan="2"
- ><div id="section.i:id:X:-62--60-:3" class="inst-details hide"
- ></div
- ></td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
- >Foo</a
- > <a href=""
+ > <a href="#"
+ >(&lt;&gt;)</a
+ > <a href="#"
+ >X</a
+ > <a href="#"
+ >XXX</a
+ > <a href="#"
+ >XX</a
+ > = <a href="#"
>X</a
- > = <a href=""
- >Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >External instance</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > = <a href="" id="v:AssocX" class="def"
+ > = <a id="v:AssocX" class="def"
>AssocX</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>Foo</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
> <ul class="inst"
><li class="inst"
- >= <a href="" id="v:BatX" class="def"
+ >= <a id="v:BatX" class="def"
>BatX</a
- > <a href=""
+ > <a href="#"
>X</a
></li
><li class="inst"
- >| <a href="" id="v:BatXX" class="def"
+ >| <a id="v:BatXX" class="def"
>BatXX</a
> { <ul class="subs"
><li
- ><a href="" id="v:aaa" class="def"
+ ><a id="v:aaa" class="def"
>aaa</a
- > :: <a href=""
+ > :: <a href="#"
>X</a
></li
><li
- ><a href="" id="v:bbb" class="def"
+ ><a id="v:bbb" class="def"
>bbb</a
- > :: <a href=""
+ > :: <a href="#"
>Y</a
></li
></ul
> }</li
></ul
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -397,54 +464,40 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>Y</a
></span
- ></td
- ><td class="doc"
- ><p
- >Doc for: type instance Foo X = Y</p
- ></td
- ></tr
- ><tr
- ><td class="src clearfix"
- ><span class="inst-left"
- ><span class="keyword"
- >type</span
- > <a href=""
- >(&lt;&gt;)</a
- > * <a href=""
- >X</a
- > a = <a href=""
- >X</a
- ></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&lt;&gt;)</a
- > <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > <a href=""
- >XXX</a
- > <a href=""
- >XX</a
- > = <a href=""
+ > a = <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -454,8 +507,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Y" class="def"
+ > <a id="t:Y" class="def"
>Y</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -471,11 +526,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:id:Y:Assoc:1" class="instance expander" onclick="toggleSection('i:id:Y:Assoc:1')"
></span
- > <a href=""
+ > <a href="#"
>Assoc</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -491,19 +550,31 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > (<a href=""
+ > <a href="#"
+ >Y</a
+ > (a :: <a href="#"
>Y</a
- > :: k)</p
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > (<a href=""
+ > <a href="#"
+ >Y</a
+ > (a :: <a href="#"
>Y</a
- > :: k) :: *</p
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -513,11 +584,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:id:Y:Test:2" class="instance expander" onclick="toggleSection('i:id:Y:Test:2')"
></span
- > <a href=""
+ > <a href="#"
>Test</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -535,63 +610,79 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href="" id="v:AssocY" class="def"
+ > = <a id="v:AssocY" class="def"
>AssocY</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href=""
+ > = <a href="#"
>Bat</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href="" id="v:BatY" class="def"
+ > = <a id="v:BatY" class="def"
>BatY</a
- > <a href=""
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -603,32 +694,38 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href=""
+ > = <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >Doc for: type instance Foo Y = X</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&lt;&gt;)</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
> a = a</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -638,8 +735,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Z" class="def"
+ > <a id="t:Z" class="def"
>Z</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -651,19 +750,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><table
><tr
><td class="src"
- ><a href="" id="v:ZA" class="def"
+ ><a id="v:ZA" class="def"
>ZA</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href="" id="v:ZB" class="def"
+ ><a id="v:ZB" class="def"
>ZB</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -677,51 +776,37 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
> <span class="keyword"
>where</span
><ul class="inst"
><li class="inst"
- ><a href="" id="v:BatZ1" class="def"
+ ><a id="v:BatZ1" class="def"
>BatZ1</a
- > :: <a href=""
- >Z</a
- > -&gt; <a href=""
+ > :: <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
- > <a href=""
+ > <a href="#"
>ZA</a
></li
><li class="inst"
- ><a href="" id="v:BatZ2" class="def"
+ ><a id="v:BatZ2" class="def"
>BatZ2</a
- > :: { <ul class="subs"
- ><li
- ><a href="" id="v:batx" class="def"
- >batx</a
- > :: <a href=""
- >X</a
- ></li
- ><li
- ><a href="" id="v:baty" class="def"
- >baty</a
- > :: <a href=""
- >Y</a
- ></li
- ></ul
- > } -&gt; <a href=""
+ > :: <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
- > <a href=""
+ > <a href="#"
>ZB</a
></li
></ul
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -736,9 +821,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Test" class="def"
+ > <a id="t:Test" class="def"
>Test</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: class Test a</p
@@ -753,11 +840,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:ic:Test:Test:1" class="instance expander" onclick="toggleSection('i:ic:Test:Test:1')"
></span
- > <a href=""
+ > <a href="#"
>Test</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -775,11 +866,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:ic:Test:Test:2" class="instance expander" onclick="toggleSection('i:ic:Test:Test:2')"
></span
- > <a href=""
+ > <a href="#"
>Test</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -800,9 +895,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>type family</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
- > a :: k</p
+ > a :: k <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: type family Foo a</p
@@ -817,36 +914,40 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href=""
+ > = <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >Doc for: type instance Foo Y = X</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >Doc for: type instance Foo X = Y</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
></table
></div
@@ -856,9 +957,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data family</span
- > <a href="" id="t:Bat" class="def"
+ > <a id="t:Bat" class="def"
>Bat</a
- > a :: *</p
+ > a :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: data family Bat a</p
@@ -873,51 +978,37 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
> <span class="keyword"
>where</span
><ul class="inst"
><li class="inst"
- ><a href="" id="v:BatZ1" class="def"
+ ><a id="v:BatZ1" class="def"
>BatZ1</a
- > :: <a href=""
- >Z</a
- > -&gt; <a href=""
+ > :: <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
- > <a href=""
+ > <a href="#"
>ZA</a
></li
><li class="inst"
- ><a href="" id="v:BatZ2" class="def"
+ ><a id="v:BatZ2" class="def"
>BatZ2</a
- > :: { <ul class="subs"
- ><li
- ><a href="" id="v:batx" class="def"
- >batx</a
- > :: <a href=""
- >X</a
- ></li
- ><li
- ><a href="" id="v:baty" class="def"
- >baty</a
- > :: <a href=""
- >Y</a
- ></li
- ></ul
- > } -&gt; <a href=""
+ > :: <a href="#"
>Bat</a
- > <a href=""
+ > <a href="#"
>Z</a
- > <a href=""
+ > <a href="#"
>ZB</a
></li
></ul
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -929,15 +1020,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
- > = <a href="" id="v:BatY" class="def"
+ > = <a id="v:BatY" class="def"
>BatY</a
- > <a href=""
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -949,37 +1044,41 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bat</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
> <ul class="inst"
><li class="inst"
- >= <a href="" id="v:BatX" class="def"
+ >= <a id="v:BatX" class="def"
>BatX</a
- > <a href=""
+ > <a href="#"
>X</a
></li
><li class="inst"
- >| <a href="" id="v:BatXX" class="def"
+ >| <a id="v:BatXX" class="def"
>BatXX</a
> { <ul class="subs"
><li
- ><a href="" id="v:aaa" class="def"
+ ><a id="v:aaa" class="def"
>aaa</a
- > :: <a href=""
+ > :: <a href="#"
>X</a
></li
><li
- ><a href="" id="v:bbb" class="def"
+ ><a id="v:bbb" class="def"
>bbb</a
- > :: <a href=""
+ > :: <a href="#"
>Y</a
></li
></ul
> }</li
></ul
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -994,9 +1093,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>class</span
- > <a href="" id="t:Assoc" class="def"
+ > <a id="t:Assoc" class="def"
>Assoc</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: class Assoc a</p
@@ -1007,9 +1108,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:AssocD" class="def"
+ > <a id="t:AssocD" class="def"
>AssocD</a
- > a :: *</p
+ > a :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: data AssocD a</p
@@ -1017,9 +1122,13 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>type</span
- > <a href="" id="t:AssocT" class="def"
+ > <a id="t:AssocT" class="def"
>AssocT</a
- > a :: *</p
+ > a :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: type AssocT a</p
@@ -1035,11 +1144,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:ic:Assoc:Assoc:1" class="instance expander" onclick="toggleSection('i:ic:Assoc:Assoc:1')"
></span
- > <a href=""
+ > <a href="#"
>Assoc</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -1055,19 +1168,31 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > (<a href=""
+ > <a href="#"
+ >Y</a
+ > (a :: <a href="#"
>Y</a
- > :: k)</p
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > (<a href=""
+ > <a href="#"
>Y</a
- > :: k) :: *</p
+ > (a :: <a href="#"
+ >Y</a
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -1077,11 +1202,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:ic:Assoc:Assoc:2" class="instance expander" onclick="toggleSection('i:ic:Assoc:Assoc:2')"
></span
- > <a href=""
+ > <a href="#"
>Assoc</a
- > * <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -1097,19 +1226,31 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>AssocD</a
- > (<a href=""
+ > <a href="#"
+ >X</a
+ > (a :: <a href="#"
>X</a
- > :: k)</p
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
><p class="src"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>AssocT</a
- > (<a href=""
+ > <a href="#"
>X</a
- > :: k) :: *</p
+ > (a :: <a href="#"
+ >X</a
+ >) :: <a href="#"
+ >*</a
+ > <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></td
@@ -1122,9 +1263,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>type family</span
- > <a href="" id="t:Bar" class="def"
+ > <a id="t:Bar" class="def"
>Bar</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Doc for: type family Bar b</p
@@ -1135,25 +1278,25 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><table
><tr
><td class="src"
- ><a href=""
+ ><a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>X</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src"
- ><a href=""
+ ><a href="#"
>Bar</a
- > y = <a href=""
+ > y = <a href="#"
>Y</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -1162,9 +1305,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>type family</span
- > a <a href="" id="t:-60--62-" class="def"
+ > a <a id="t:-60--62-" class="def"
>&lt;&gt;</a
- > b :: k</p
+ > b :: k <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs instances"
><p id="control.i:-60--62-" class="caption collapser" onclick="toggleSection('i:-60--62-')"
>Instances</p
@@ -1175,50 +1320,60 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&lt;&gt;)</a
- > * <a href=""
- >Y</a
- > a = a</span
+ > <a href="#"
+ >X</a
+ > <a href="#"
+ >XXX</a
+ > <a href="#"
+ >XX</a
+ > = <a href="#"
+ >X</a
+ ></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&lt;&gt;)</a
- > * <a href=""
- >X</a
- > a = <a href=""
- >X</a
- ></span
+ > <a href="#"
+ >*</a
+ > <a href="#"
+ >Y</a
+ > a = a</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>(&lt;&gt;)</a
- > <a href=""
+ > <a href="#"
+ >*</a
+ > <a href="#"
>X</a
- > <a href=""
- >XXX</a
- > <a href=""
- >XX</a
- > = <a href=""
+ > a = <a href="#"
>X</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -1228,9 +1383,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><p class="src"
><span class="keyword"
>class</span
- > a <a href="" id="t:-62--60-" class="def"
+ > a <a id="t:-62--60-" class="def"
>&gt;&lt;</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs instances"
><p id="control.i:-62--60-" class="caption collapser" onclick="toggleSection('i:-62--60-')"
>Instances</p
@@ -1241,18 +1398,20 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
><span class="inst-left"
><span id="control.i:ic:-62--60-:-62--60-:1" class="instance expander" onclick="toggleSection('i:ic:-62--60-:-62--60-:1')"
></span
- > <a href=""
+ > <a href="#"
>(&gt;&lt;)</a
- > <a href=""
+ > <a href="#"
>X</a
- > <a href=""
+ > <a href="#"
>XX</a
- > <a href=""
+ > <a href="#"
>XXX</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -1267,11 +1426,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TypeFamilies2.html b/html-test/ref/TypeFamilies2.html
index 0c7e4ec6..0da8e6c9 100644
--- a/html-test/ref/TypeFamilies2.html
+++ b/html-test/ref/TypeFamilies2.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TypeFamilies2</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TypeFamilies2.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,19 +49,19 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><li class="src short"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>W</a
></li
><li class="src short"
><span class="keyword"
>type family</span
- > <a href=""
+ > <a href="#"
>Foo</a
> a</li
><li class="src short"
><span class="keyword"
>data family</span
- > <a href=""
+ > <a href="#"
>Bar</a
> a</li
></ul
@@ -72,8 +73,10 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:W" class="def"
+ > <a id="t:W" class="def"
>W</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -89,13 +92,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>W</a
- > = <a href="" id="v:BarX" class="def"
+ > = <a id="v:BarX" class="def"
>BarX</a
> Z</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -107,16 +112,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>W</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >Should be visible, but with a hidden right hand side</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
></table
></div
@@ -126,9 +131,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><p class="src"
><span class="keyword"
>type family</span
- > <a href="" id="t:Foo" class="def"
+ > <a id="t:Foo" class="def"
>Foo</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Exported type family</p
@@ -143,34 +150,34 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>W</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >Should be visible, but with a hidden right hand side</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
><tr
><td class="src clearfix"
><span class="inst-left"
><span class="keyword"
>type</span
- > <a href=""
+ > <a href="#"
>Foo</a
- > <a href=""
+ > <a href="#"
>X</a
- > = <a href=""
+ > = <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
- ><td class="doc"
- ><p
- >External instance</p
- ></td
+ ><td class="doc empty"
+ ></td
></tr
></table
></div
@@ -180,9 +187,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><p class="src"
><span class="keyword"
>data family</span
- > <a href="" id="t:Bar" class="def"
+ > <a id="t:Bar" class="def"
>Bar</a
- > a</p
+ > a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="doc"
><p
>Exported data family</p
@@ -197,13 +206,15 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>W</a
- > = <a href="" id="v:BarX" class="def"
+ > = <a id="v:BarX" class="def"
>BarX</a
> Z</span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc"
><p
@@ -215,14 +226,16 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
><span class="inst-left"
><span class="keyword"
>data</span
- > <a href=""
+ > <a href="#"
>Bar</a
- > <a href=""
+ > <a href="#"
>Y</a
></span
+ > <a href="#" class="selflink"
+ >#</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
></table
></div
@@ -231,11 +244,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies2.html");}
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/TypeOperators.html b/html-test/ref/TypeOperators.html
index 283083be..f6da47b1 100644
--- a/html-test/ref/TypeOperators.html
+++ b/html-test/ref/TypeOperators.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>TypeOperators</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_TypeOperators.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_TypeOperators.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -48,44 +49,52 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeOperators.html");}
><p class="src"
><span class="keyword"
>data</span
- > a <a href="" id="t::-45-:" class="def"
+ > a <a id="t::-45-:" class="def"
>:-:</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
><span class="keyword"
>data</span
- > (a <a href="" id="t::-43-:" class="def"
+ > (a <a id="t::-43-:" class="def"
>:+:</a
- > b) c</p
+ > b) c <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
><span class="keyword"
>data</span
- > <a href="" id="t:Op" class="def"
+ > <a id="t:Op" class="def"
>Op</a
- > a b</p
+ > a b <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
><span class="keyword"
>newtype</span
- > <a href="" id="t:O" class="def"
+ > <a id="t:O" class="def"
>O</a
- > g f a</p
+ > g f a <a href="#" class="selflink"
+ >#</a
+ ></p
><div class="subs constructors"
><p class="caption"
>Constructors</p
><table
><tr
><td class="src"
- ><a href="" id="v:O" class="def"
+ ><a id="v:O" class="def"
>O</a
></td
><td class="doc empty"
- >&nbsp;</td
+ ></td
></tr
><tr
><td colspan="2"
@@ -95,11 +104,11 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeOperators.html");}
><ul
><li
><dfn class="src"
- ><a href="" id="v:unO" class="def"
+ ><a id="v:unO" class="def"
>unO</a
> :: g (f a)</dfn
><div class="doc empty"
- >&nbsp;</div
+ ></div
></li
></ul
></div
@@ -112,62 +121,70 @@ window.onload = function () {pageLoad();setSynopsis("mini_TypeOperators.html");}
><p class="src"
><span class="keyword"
>class</span
- > a <a href="" id="t:-60--61--62-" class="def"
+ > a <a id="t:-60--61--62-" class="def"
>&lt;=&gt;</a
- > b</p
+ > b <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:biO" class="def"
+ ><a id="v:biO" class="def"
>biO</a
- > :: (g <a href=""
+ > :: (g <a href="#"
>`O`</a
- > f) a</p
+ > f) a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:f" class="def"
+ ><a id="v:f" class="def"
>f</a
- > :: (a ~ b) =&gt; a -&gt; b</p
+ > :: a ~ b =&gt; a -&gt; b <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:g" class="def"
+ ><a id="v:g" class="def"
>g</a
- > :: (a ~ b, b ~ c) =&gt; a -&gt; c</p
+ > :: (a ~ b, b ~ c) =&gt; a -&gt; c <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:x" class="def"
+ ><a id="v:x" class="def"
>x</a
- > :: (a <a href=""
+ > :: (a <a href="#"
>:-:</a
- > a) <a href=""
+ > a) <a href="#"
>&lt;=&gt;</a
- > (a <a href=""
+ > (a <a href="#"
>`Op`</a
- > a) =&gt; a</p
+ > a) =&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
><div class="top"
><p class="src"
- ><a href="" id="v:y" class="def"
+ ><a id="v:y" class="def"
>y</a
- > :: (a <a href=""
+ > :: (a <a href="#"
>&lt;=&gt;</a
- > a, (a <a href=""
+ > a, (a <a href="#"
>`Op`</a
- > a) <a href=""
+ > a) <a href="#"
>&lt;=&gt;</a
- > a) =&gt; a</p
+ > a) =&gt; a <a href="#" class="selflink"
+ >#</a
+ ></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Unicode.html b/html-test/ref/Unicode.html
index d724ecd7..335761f2 100644
--- a/html-test/ref/Unicode.html
+++ b/html-test/ref/Unicode.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Unicode</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Unicode.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Unicode.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,9 +47,9 @@ window.onload = function () {pageLoad();setSynopsis("mini_Unicode.html");};
>Synopsis</p
><ul id="section.syn" class="hide" onclick="toggleSection('syn')"
><li class="src short"
- ><a href=""
+ ><a href="#"
>x</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
></li
></ul
@@ -58,10 +59,12 @@ window.onload = function () {pageLoad();setSynopsis("mini_Unicode.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:x" class="def"
+ ><a id="v:x" class="def"
>x</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
><div class="doc"
><p
@@ -71,11 +74,7 @@ window.onload = function () {pageLoad();setSynopsis("mini_Unicode.html");};
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/Visible.html b/html-test/ref/Visible.html
index 54a04e86..f1390568 100644
--- a/html-test/ref/Visible.html
+++ b/html-test/ref/Visible.html
@@ -1,32 +1,33 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
/><title
>Visible</title
- ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean"
+ ><link href="#" rel="stylesheet" type="text/css" title="Ocean"
/><script src="haddock-util.js" type="text/javascript"
></script
+ ><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript"
+ ></script
><script type="text/javascript"
- >//<![CDATA[
-window.onload = function () {pageLoad();setSynopsis("mini_Visible.html");};
-//]]>
+ >//
+window.onload = function () {pageLoad();setSynopsis(&quot;mini_Visible.html&quot;);};
+//
</script
></head
><body
><div id="package-header"
><ul class="links" id="page-menu"
><li
- ><a href=""
+ ><a href="#"
>Contents</a
></li
><li
- ><a href=""
+ ><a href="#"
>Index</a
></li
></ul
><p class="caption empty"
- >&nbsp;</p
+ ></p
></div
><div id="content"
><div id="module-header"
@@ -46,22 +47,20 @@ window.onload = function () {pageLoad();setSynopsis("mini_Visible.html");};
>Documentation</h1
><div class="top"
><p class="src"
- ><a href="" id="v:visible" class="def"
+ ><a id="v:visible" class="def"
>visible</a
- > :: <a href=""
+ > :: <a href="#"
>Int</a
- > -&gt; <a href=""
+ > -&gt; <a href="#"
>Int</a
+ > <a href="#" class="selflink"
+ >#</a
></p
></div
></div
></div
><div id="footer"
- ><p
- >Produced by <a href=""
- >Haddock</a
- > version 2.16.2</p
- ></div
+ ></div
></body
></html
->
+> \ No newline at end of file
diff --git a/html-test/ref/ocean.css b/html-test/ref/ocean.css
index 428040bc..fcf23810 100644
--- a/html-test/ref/ocean.css
+++ b/html-test/ref/ocean.css
@@ -159,6 +159,8 @@ p.caption.expander {
.instance.collapser, .instance.expander {
margin-left: 0px;
background-position: left center;
+ min-width: 9px;
+ min-height: 9px;
}
@@ -379,21 +381,16 @@ div#style-menu-holder {
#interface h5 + div.top {
margin-top: 1em;
}
-#interface p.src .link {
+#interface .src .selflink,
+#interface .src .link {
float: right;
color: #919191;
- border-left: 1px solid #919191;
background: #f0f0f0;
padding: 0 0.5em 0.2em;
- margin: 0 -0.5em 0 0.5em;
+ margin: 0 -0.5em 0 0;
}
-
-#interface td.src .link {
- float: right;
- color: #919191;
+#interface .src .selflink {
border-left: 1px solid #919191;
- background: #f0f0f0;
- padding: 0 0.5em 0.2em;
margin: 0 -0.5em 0 0.5em;
}
diff --git a/hypsrc-test/Main.hs b/hypsrc-test/Main.hs
index 0490be47..d3ab79a8 100644
--- a/hypsrc-test/Main.hs
+++ b/hypsrc-test/Main.hs
@@ -3,6 +3,7 @@
import Data.Char
import Data.List
+import Data.Function (on)
import System.Environment
import System.FilePath
@@ -13,9 +14,10 @@ import Test.Haddock.Xhtml
checkConfig :: CheckConfig Xml
checkConfig = CheckConfig
- { ccfgRead = \_ input -> strip <$> parseXml input
+ { ccfgRead = parseXml
+ , ccfgClean = \_ -> strip
, ccfgDump = dumpXml
- , ccfgEqual = (==)
+ , ccfgEqual = (==) `on` dumpXml
}
where
strip = stripAnchors' . stripLinks' . stripFooter
diff --git a/hypsrc-test/ref/src/Classes.html b/hypsrc-test/ref/src/Classes.html
index 74a7a427..abff8877 100644
--- a/hypsrc-test/ref/src/Classes.html
+++ b/hypsrc-test/ref/src/Classes.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -44,8 +43,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -61,19 +60,15 @@
></a
><span
> </span
- ><a name="bar"
- ><a href="Classes.html#bar"
- ><span class="hs-identifier"
- >bar</span
- ></a
- ></a
+ ><span class="hs-identifier"
+ >bar</span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -92,12 +87,8 @@
></a
><span
> </span
- ><a name="baz"
- ><a href="Classes.html#baz"
- ><span class="hs-identifier"
- >baz</span
- ></a
- ></a
+ ><span class="hs-identifier"
+ >baz</span
><span
> </span
><span class="hs-glyph"
@@ -114,7 +105,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -122,7 +113,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -161,7 +152,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#bar"
><span class="hs-identifier"
>bar</span
@@ -182,7 +173,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#baz"
><span class="hs-identifier"
>baz</span
@@ -190,8 +181,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -204,7 +195,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -212,7 +203,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -240,7 +231,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -257,7 +248,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#bar"
><span class="hs-identifier"
>bar</span
@@ -278,7 +269,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#baz"
><span class="hs-identifier"
>baz</span
@@ -335,7 +326,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -353,8 +344,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -370,12 +361,8 @@
></a
><span
> </span
- ><a name="quux"
- ><a href="Classes.html#quux"
- ><span class="hs-identifier"
- >quux</span
- ></a
- ></a
+ ><span class="hs-identifier"
+ >quux</span
><span
> </span
><span class="hs-glyph"
@@ -384,7 +371,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -392,7 +379,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -404,7 +391,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -415,7 +402,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#quux"
><span class="hs-identifier"
>quux</span
@@ -425,8 +412,8 @@
> </span
><span class="hs-special"
>(</span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -435,8 +422,8 @@
>,</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -457,7 +444,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -465,7 +452,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -483,12 +470,8 @@
></a
><span
> </span
- ><a name="norf"
- ><a href="Classes.html#norf"
- ><span class="hs-identifier"
- >norf</span
- ></a
- ></a
+ ><span class="hs-identifier"
+ >norf</span
><span
> </span
><span class="hs-glyph"
@@ -497,7 +480,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -509,7 +492,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -520,7 +503,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#norf"
><span class="hs-identifier"
>norf</span
@@ -601,7 +584,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#norf"
><span class="hs-identifier"
>norf</span
@@ -637,7 +620,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -654,7 +637,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#quux"
><span class="hs-identifier"
>quux</span
@@ -703,8 +686,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>p</span
></a
@@ -720,31 +703,27 @@
></a
><span
> </span
- ><a name="plugh"
- ><a href="Classes.html#plugh"
- ><span class="hs-identifier"
- >plugh</span
- ></a
- ></a
+ ><span class="hs-identifier"
+ >plugh</span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>p</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -754,19 +733,19 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>p</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
@@ -776,7 +755,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>p</span
></a
@@ -784,7 +763,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -794,7 +773,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
@@ -804,7 +783,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
@@ -814,7 +793,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -853,7 +832,7 @@
></a
><span
> </span
- ><a name="local-0"
+ ><a name=""
><a href="Classes.html#plugh"
><span class="hs-identifier"
>plugh</span
@@ -867,8 +846,8 @@
>Left</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -897,7 +876,7 @@
>const</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -918,8 +897,8 @@
>Right</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -948,7 +927,7 @@
>const</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -973,8 +952,8 @@
>Left</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -999,7 +978,7 @@
>const</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -1024,8 +1003,8 @@
>Right</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -1050,7 +1029,7 @@
>const</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -1062,4 +1041,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Constructors.html b/hypsrc-test/ref/src/Constructors.html
index 86a482f6..e35ca0b1 100644
--- a/hypsrc-test/ref/src/Constructors.html
+++ b/hypsrc-test/ref/src/Constructors.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -375,16 +374,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>foo</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>n</span
></a
@@ -405,7 +404,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>n</span
></a
@@ -421,7 +420,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>foo</span
></a
@@ -497,8 +496,8 @@
>,</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>xs</span
></a
@@ -521,7 +520,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>xs</span
></a
@@ -552,8 +551,8 @@
>,</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>xs</span
></a
@@ -580,7 +579,7 @@
>reverse</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>xs</span
></a
@@ -651,8 +650,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -669,8 +668,8 @@
> </span
><span class="hs-special"
>(</span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>f1</span
></a
@@ -689,8 +688,8 @@
>_</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>n</span
></a
@@ -707,8 +706,8 @@
>,</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>f2</span
></a
@@ -723,8 +722,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>f3</span
></a
@@ -750,7 +749,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x'</span
></a
@@ -760,7 +759,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>n</span
></a
@@ -776,7 +775,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>f1</span
></a
@@ -786,13 +785,13 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>aux</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>f3</span
></a
@@ -812,16 +811,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>aux</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>fx</span
></a
@@ -838,7 +837,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>f2</span
></a
@@ -854,7 +853,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>fx</span
></a
@@ -870,7 +869,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>f3</span
></a
@@ -881,8 +880,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x'</span
></a
@@ -925,7 +924,7 @@
>$</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -937,4 +936,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Identifiers.html b/hypsrc-test/ref/src/Identifiers.html
index 7680b3ef..f52db4ab 100644
--- a/hypsrc-test/ref/src/Identifiers.html
+++ b/hypsrc-test/ref/src/Identifiers.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -83,16 +82,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -103,7 +102,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -113,7 +112,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -129,13 +128,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -145,7 +144,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -155,7 +154,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -172,16 +171,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -192,7 +191,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -202,7 +201,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -218,13 +217,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -234,7 +233,7 @@
>-</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -244,7 +243,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -261,16 +260,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -281,7 +280,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -291,7 +290,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -301,7 +300,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -311,7 +310,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -321,7 +320,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -366,8 +365,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -392,13 +391,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -414,13 +413,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -483,24 +482,24 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>z</span
></a
@@ -516,7 +515,7 @@
>|</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -540,7 +539,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -555,7 +554,7 @@
>|</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -579,7 +578,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -594,7 +593,7 @@
>|</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>z</span
></a
@@ -618,7 +617,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>z</span
></a
@@ -651,7 +650,7 @@
>(</span
><span class="hs-glyph"
>-</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -663,7 +662,7 @@
>(</span
><span class="hs-glyph"
>-</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -675,7 +674,7 @@
>(</span
><span class="hs-glyph"
>-</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>z</span
></a
@@ -760,13 +759,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -799,7 +798,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>z</span
></a
@@ -836,19 +835,19 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>z</span
></a
@@ -868,8 +867,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -889,8 +888,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -910,8 +909,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>z</span
></a
@@ -932,4 +931,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Literals.html b/hypsrc-test/ref/src/Literals.html
index a009a502..dfcefc97 100644
--- a/hypsrc-test/ref/src/Literals.html
+++ b/hypsrc-test/ref/src/Literals.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -83,7 +82,7 @@
>Num</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -93,7 +92,7 @@
>=&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -170,7 +169,7 @@
>Fractional</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -180,7 +179,7 @@
>=&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -229,7 +228,7 @@
>[</span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -425,4 +424,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Operators.html b/hypsrc-test/ref/src/Operators.html
index fe690db2..8ce0b9ce 100644
--- a/hypsrc-test/ref/src/Operators.html
+++ b/hypsrc-test/ref/src/Operators.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -46,7 +45,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -60,7 +59,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -74,7 +73,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -85,8 +84,8 @@
</span
><a name="line-5"
></a
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -101,8 +100,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -113,7 +112,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -123,7 +122,7 @@
>++</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -133,7 +132,7 @@
>++</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -161,7 +160,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -175,7 +174,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -189,7 +188,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -200,8 +199,8 @@
</span
><a name="line-8"
></a
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -216,8 +215,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -228,7 +227,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -240,7 +239,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -268,7 +267,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -282,7 +281,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -296,7 +295,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -319,8 +318,8 @@
>)</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -337,7 +336,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -354,8 +353,8 @@
>)</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -368,8 +367,8 @@
>_</span
><span class="hs-glyph"
>:</span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -382,7 +381,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -396,7 +395,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -408,7 +407,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -440,7 +439,7 @@
>[</span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -456,7 +455,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -470,7 +469,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -481,8 +480,8 @@
</span
><a name="line-15"
></a
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -497,8 +496,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -521,7 +520,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -529,7 +528,7 @@
>)</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -559,7 +558,7 @@
>[</span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -577,7 +576,7 @@
>[</span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -595,7 +594,7 @@
>[</span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -608,8 +607,8 @@
</span
><a name="line-18"
></a
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -624,8 +623,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -652,7 +651,7 @@
> </span
><span class="hs-special"
>[</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -664,7 +663,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -674,7 +673,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -686,7 +685,7 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -719,7 +718,7 @@
>::</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -729,7 +728,7 @@
>-&gt;</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
@@ -741,7 +740,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>c</span
></a
@@ -753,7 +752,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
@@ -761,7 +760,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-type"
>b</span
></a
@@ -774,8 +773,8 @@
</span
><a name="line-22"
></a
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
@@ -790,8 +789,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -812,7 +811,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>a</span
></a
@@ -820,7 +819,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>b</span
></a
@@ -834,4 +833,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Polymorphism.html b/hypsrc-test/ref/src/Polymorphism.html
new file mode 100644
index 00000000..602246e0
--- /dev/null
+++ b/hypsrc-test/ref/src/Polymorphism.html
@@ -0,0 +1,2036 @@
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><link rel="stylesheet" type="text/css" href="style.css"
+ /><script type="text/javascript" src="highlight.js"
+ ></script
+ ></head
+ ><body
+ ><pre
+ ><span class="hs-pragma"
+ >{-# LANGUAGE RankNTypes #-}</span
+ ><span
+ >
+</span
+ ><a name="line-2"
+ ></a
+ ><span class="hs-pragma"
+ >{-# LANGUAGE ScopedTypeVariables #-}</span
+ ><span
+ >
+</span
+ ><a name="line-3"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-4"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-5"
+ ></a
+ ><span class="hs-keyword"
+ >module</span
+ ><span
+ > </span
+ ><span class="hs-identifier"
+ >Polymorphism</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >where</span
+ ><span
+ >
+</span
+ ><a name="line-6"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-7"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-8"
+ ></a
+ ><span class="hs-identifier"
+ >foo</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-9"
+ ></a
+ ><a name="foo"
+ ><a href="Polymorphism.html#foo"
+ ><span class="hs-identifier"
+ >foo</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-10"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-11"
+ ></a
+ ><span class="hs-identifier"
+ >foo'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-12"
+ ></a
+ ><a name="foo%27"
+ ><a href="Polymorphism.html#foo%27"
+ ><span class="hs-identifier"
+ >foo'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-13"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-14"
+ ></a
+ ><span class="hs-identifier"
+ >bar</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-15"
+ ></a
+ ><a name="bar"
+ ><a href="Polymorphism.html#bar"
+ ><span class="hs-identifier"
+ >bar</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-16"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-17"
+ ></a
+ ><span class="hs-identifier"
+ >bar'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >b</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-18"
+ ></a
+ ><a name="bar%27"
+ ><a href="Polymorphism.html#bar%27"
+ ><span class="hs-identifier"
+ >bar'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-19"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-20"
+ ></a
+ ><span class="hs-identifier"
+ >baz</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-21"
+ ></a
+ ><a name="baz"
+ ><a href="Polymorphism.html#baz"
+ ><span class="hs-identifier"
+ >baz</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-22"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-23"
+ ></a
+ ><span class="hs-identifier"
+ >baz'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >b</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-24"
+ ></a
+ ><a name="baz%27"
+ ><a href="Polymorphism.html#baz%27"
+ ><span class="hs-identifier"
+ >baz'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-25"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-26"
+ ></a
+ ><span class="hs-identifier"
+ >quux</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-27"
+ ></a
+ ><a name="quux"
+ ><a href="Polymorphism.html#quux"
+ ><span class="hs-identifier"
+ >quux</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >f</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >f</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-28"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-29"
+ ></a
+ ><span class="hs-identifier"
+ >quux'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-30"
+ ></a
+ ><a name="quux%27"
+ ><a href="Polymorphism.html#quux%27"
+ ><span class="hs-identifier"
+ >quux'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >f</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >f</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-31"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-32"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-33"
+ ></a
+ ><span class="hs-identifier"
+ >num</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Num</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-34"
+ ></a
+ ><a name="num"
+ ><a href="Polymorphism.html#num"
+ ><span class="hs-identifier"
+ >num</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-35"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-36"
+ ></a
+ ><span class="hs-identifier"
+ >num'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Num</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-37"
+ ></a
+ ><a name="num%27"
+ ><a href="Polymorphism.html#num%27"
+ ><span class="hs-identifier"
+ >num'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-38"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-39"
+ ></a
+ ><span class="hs-identifier"
+ >eq</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-identifier hs-type"
+ >Eq</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Eq</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-40"
+ ></a
+ ><a name="eq"
+ ><a href="Polymorphism.html#eq"
+ ><span class="hs-identifier"
+ >eq</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-41"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-42"
+ ></a
+ ><span class="hs-identifier"
+ >eq'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >b</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-identifier hs-type"
+ >Eq</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Eq</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >[</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >]</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-43"
+ ></a
+ ><a name="eq%27"
+ ><a href="Polymorphism.html#eq%27"
+ ><span class="hs-identifier"
+ >eq'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-44"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-45"
+ ></a
+ ><span class="hs-identifier"
+ >mon</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Monad</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-46"
+ ></a
+ ><a name="mon"
+ ><a href="Polymorphism.html#mon"
+ ><span class="hs-identifier"
+ >mon</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-47"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-48"
+ ></a
+ ><span class="hs-identifier"
+ >mon'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >m</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Monad</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >m</span
+ ></a
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-49"
+ ></a
+ ><a name="mon%27"
+ ><a href="Polymorphism.html#mon%27"
+ ><span class="hs-identifier"
+ >mon'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-var"
+ >undefined</span
+ ><span
+ >
+</span
+ ><a name="line-50"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-51"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-52"
+ ></a
+ ><span class="hs-identifier"
+ >norf</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Ord</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-53"
+ ></a
+ ><a name="norf"
+ ><a href="Polymorphism.html#norf"
+ ><span class="hs-identifier"
+ >norf</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >f</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-54"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-55"
+ ></a
+ ><span class="hs-identifier"
+ >norf'</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-identifier hs-type"
+ >Ord</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-56"
+ ></a
+ ><a name="norf%27"
+ ><a href="Polymorphism.html#norf%27"
+ ><span class="hs-identifier"
+ >norf'</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >f</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-57"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-58"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-59"
+ ></a
+ ><span class="hs-identifier"
+ >plugh</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-60"
+ ></a
+ ><a name="plugh"
+ ><a href="Polymorphism.html#plugh"
+ ><span class="hs-identifier"
+ >plugh</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-61"
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-62"
+ ></a
+ ><span class="hs-identifier"
+ >thud</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >forall</span
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >a</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >b</span
+ ></a
+ ></a
+ ><span class="hs-operator"
+ >.</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-63"
+ ></a
+ ><a name="thud"
+ ><a href="Polymorphism.html#thud"
+ ><span class="hs-identifier"
+ >thud</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >f</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ >
+</span
+ ><a name="line-64"
+ ></a
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >y</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span class="hs-special"
+ >,</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ >
+</span
+ ><a name="line-65"
+ ></a
+ ><span
+ > </span
+ ><span class="hs-keyword"
+ >where</span
+ ><span
+ >
+</span
+ ><a name="line-66"
+ ></a
+ ><span
+ > </span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >y</span
+ ></a
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >=</span
+ ><span
+ > </span
+ ><span class="hs-special"
+ >(</span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >f</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >a</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >-&gt;</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span class="hs-special"
+ >)</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-var"
+ >x</span
+ ></a
+ ><span
+ > </span
+ ><span class="hs-glyph"
+ >::</span
+ ><span
+ > </span
+ ><a href="#"
+ ><span class="hs-identifier hs-type"
+ >b</span
+ ></a
+ ><span
+ >
+</span
+ ><a name="line-67"
+ ></a
+ ></pre
+ ></body
+ ></html
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Records.html b/hypsrc-test/ref/src/Records.html
index eb4e0fbb..7d23d114 100644
--- a/hypsrc-test/ref/src/Records.html
+++ b/hypsrc-test/ref/src/Records.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -197,16 +196,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -227,17 +226,15 @@
>{</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="hs-identifier"
+ >x</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -245,17 +242,15 @@
>,</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
+ ><span class="hs-identifier"
+ >y</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -323,18 +318,16 @@
>{</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="hs-identifier"
+ >x</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
@@ -343,18 +336,16 @@
>,</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
+ ><span class="hs-identifier"
+ >y</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
@@ -371,7 +362,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -381,7 +372,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -391,7 +382,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -401,7 +392,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -460,17 +451,21 @@
>{</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >x</span
+ ></a
></a
><span class="hs-special"
>,</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
+ ><a name=""
+ ><a href="#"
+ ><span class="hs-identifier"
+ >y</span
+ ></a
></a
><span
> </span
@@ -484,7 +479,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -494,7 +489,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -504,7 +499,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -514,7 +509,7 @@
>*</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -582,16 +577,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>p</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>d</span
></a
@@ -602,7 +597,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -612,23 +607,19 @@
>{</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="hs-identifier"
+ >x</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="hs-identifier"
+ >x</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -638,7 +629,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>d</span
></a
@@ -659,16 +650,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>p</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>d</span
></a
@@ -679,7 +670,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -689,23 +680,19 @@
>{</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
+ ><span class="hs-identifier"
+ >y</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
+ ><span class="hs-identifier"
+ >y</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -715,7 +702,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>d</span
></a
@@ -784,24 +771,24 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>x</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>y</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>p</span
></a
@@ -817,13 +804,13 @@
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>aux</span
></a
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -845,8 +832,8 @@
> </span
><span class="hs-special"
>(</span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>dx</span
></a
@@ -855,8 +842,8 @@
>,</span
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>dy</span
></a
@@ -871,7 +858,7 @@
> </span
><span class="hs-special"
>(</span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -879,7 +866,7 @@
>,</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -892,8 +879,8 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>aux</span
></a
@@ -916,7 +903,7 @@
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>p</span
></a
@@ -926,17 +913,15 @@
>{</span
><span
> </span
- ><a href="Records.html#x"
- ><span class="hs-identifier hs-var"
- >x</span
- ></a
+ ><span class="hs-identifier"
+ >x</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>x</span
></a
@@ -946,7 +931,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>dx</span
></a
@@ -954,17 +939,15 @@
>,</span
><span
> </span
- ><a href="Records.html#y"
- ><span class="hs-identifier hs-var"
- >y</span
- ></a
+ ><span class="hs-identifier"
+ >y</span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>y</span
></a
@@ -974,7 +957,7 @@
>+</span
><span
> </span
- ><a href="#local-0"
+ ><a href="#"
><span class="hs-identifier hs-var"
>dy</span
></a
@@ -990,4 +973,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/ref/src/Types.html b/hypsrc-test/ref/src/Types.html
index d59f61f8..a8be9e78 100644
--- a/hypsrc-test/ref/src/Types.html
+++ b/hypsrc-test/ref/src/Types.html
@@ -1,4 +1,3 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
><head
><link rel="stylesheet" type="text/css" href="style.css"
@@ -231,16 +230,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -387,16 +386,16 @@
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>a</span
></a
></a
><span
> </span
- ><a name="local-0"
- ><a href="#local-0"
+ ><a name=""
+ ><a href="#"
><span class="hs-identifier"
>b</span
></a
@@ -1054,4 +1053,4 @@
></pre
></body
></html
->
+> \ No newline at end of file
diff --git a/hypsrc-test/src/Polymorphism.hs b/hypsrc-test/src/Polymorphism.hs
index a74ac492..3f0103bf 100644
--- a/hypsrc-test/src/Polymorphism.hs
+++ b/hypsrc-test/src/Polymorphism.hs
@@ -24,10 +24,10 @@ baz' :: forall a b. a -> (a -> [a -> a] -> b) -> b
baz' = undefined
quux :: a -> (forall a. a -> a) -> a
-quux = undefined
+quux x f = f x
quux' :: forall a. a -> (forall a. a -> a) -> a
-quux' = undefined
+quux' x f = f x
num :: Num a => a -> a -> a
@@ -50,10 +50,10 @@ mon' = undefined
norf :: a -> (forall a. Ord a => a -> a) -> a
-norf = undefined
+norf x f = x
norf' :: forall a. a -> (forall a. Ord a => a -> a) -> a
-norf' = undefined
+norf' x f = x
plugh :: forall a. a -> a
diff --git a/latex-test/Main.hs b/latex-test/Main.hs
index 2ee01a26..5989410b 100755
--- a/latex-test/Main.hs
+++ b/latex-test/Main.hs
@@ -9,7 +9,8 @@ import Test.Haddock
checkConfig :: CheckConfig String
checkConfig = CheckConfig
- { ccfgRead = \_ input -> Just input
+ { ccfgRead = Just
+ , ccfgClean = \_ -> id
, ccfgDump = id
, ccfgEqual = (==)
}