diff options
author | Ben Gamari <ben@smart-cactus.org> | 2016-02-12 10:04:22 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-02-12 10:04:22 +0100 |
commit | e18d166b39cdc8c6672b626b4b840c1c383a9685 (patch) | |
tree | 43aa1526b9980fdf9f6fc8cbd5a6027b9e82970c | |
parent | 57a5dcfd3d2a7e01229a2c3a79b1f99cd95d5de1 (diff) | |
parent | 6a6029f1fc7b2cfeea8e231c8806d293d6644004 (diff) |
Merge remote-tracking branch 'origin/master' into ghc-head
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 } @@ -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 ' '> - <!ENTITY frac12 '½'> - <!ENTITY mdash '—'> - <!ENTITY lsquo '’'> - <!ENTITY rsquo '‚'> - <!ENTITY ldquo '“'> - <!ENTITY rdquo '”'> -] > - -<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 & 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 - “Description”. 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> <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> <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 — 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 - — 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>-- |</literal></quote> or - <quote><literal>-- ^</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>-- *</literal></quote>, - <quote><literal>-- **</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>-- $</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>-- $</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><</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>></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>>>></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>&#</literal><replaceable>D</replaceable><literal>;</literal> - and - <literal>&#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>&#x3BB;</literal>, <literal>&#x3bb;</literal> - and <literal>&#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>></literal> (we often - call these “bird tracks”). For - example:</para> - -<programlisting> --- | This documentation includes two blocks of code: --- --- @ --- f x = x + x --- @ --- --- > 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 ‘<literal>></literal>’ 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>>>></literal> followed by an expression followed - by zero or more result lines:</para> - -<programlisting> --- | Two examples are given below: --- --- >>> fib 10 --- 55 --- --- >>> putStrLn "foo\nbar" --- foo --- bar -</programlisting> - <para>Result lines that only contain the string - <literal><BLANKLINE></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' a 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 - “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 <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> -<http://example.com> -</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 ``λ``, +``λ`` and ``λ`` 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("mini_A.html");}; +// </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" - > </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" - > </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("mini_B.html");}; +// </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" - > </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("mini_Bold.html");}; +// </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" - > </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("mini_Bug1.html");}; +// </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" - > </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" - > </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("mini_Bug195.html");}; +// </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" - > </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" - > </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" - > </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" - > </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("mini_Bug2.html");}; +// </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" - > </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("mini_Bug201.html");}; +// </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" - > </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("mini_Bug253.html");}; +// </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" - > </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("mini_Bug26.html");}; +// </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" - > </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("mini_Bug294.html");}; +// </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" - > </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" - > </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" - > </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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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="" + > :: ({..} -> GADT <a href="#" >A</a - > -> <a href="" + >) -> <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" - > </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("mini_Bug298.html");}; +// </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" - > </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="#" >(<^>)</a > :: (a -> a) -> a -> a</li ><li class="src short" - ><a href="" + ><a href="#" >(<^)</a > :: a -> a -> a</li ><li class="src short" - ><a href="" + ><a href="#" >(^>)</a > :: a -> a -> a</li ><li class="src short" - ><a href="" + ><a href="#" >(⋆^)</a > :: a -> a -> 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" >(<^>)</a - > :: (a -> a) -> a -> a</p + > :: (a -> a) -> a -> 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" >(<^)</a - > :: a -> a -> a</p + > :: a -> a -> 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" >(^>)</a - > :: a -> a -> a</p + > :: a -> a -> 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" >(⋆^)</a - > :: a -> a -> a</p + > :: a -> a -> 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="#" ><^></a ></code > and <code - ><a href="" + ><a href="#" >^></a ></code >, <code - ><a href="" + ><a href="#" ><^</a ></code > and <code - ><a href="" + ><a href="#" >⋆^</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("mini_Bug3.html");}; +// </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" - > </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("mini_Bug308.html");}; +// </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" - > </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("mini_Bug308CrossModule.html");}; +// </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" - > </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("mini_Bug310.html");}; +// </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" - > </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("mini_Bug313.html");}; +// </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" - > </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("mini_Bug335.html");}; +// </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" - > </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("mini_Bug387.html");}; +// </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" - > </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("mini_Bug4.html");}; +// </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" - > </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("mini_Bug6.html");}; +// </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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("mini_Bug7.html");}; +// </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" - > </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" - > </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("mini_Bug8.html");}; +// </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" - > </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" - > </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" - > </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" >(-->)</a - > :: t -> t1 -> <a href="" + > :: t -> t1 -> <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" >(--->)</a - > :: <a href="" + > :: <a href="#" >Foldable</a - > t0 => t0 t -> <a href="" + > t0 => t0 t -> <a href="#" >Typ</a - > -> <a href="" + > -> <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("mini_Bug85.html");}; +// </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" - > </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 - > :: (* -> *) -> * -> * <span class="keyword" + > :: (<a href="#" + >*</a + > -> <a href="#" + >*</a + >) -> <a href="#" + >*</a + > -> <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 -> <a href="" + > :: f x -> <a href="#" >Foo</a > f (f x)</td ><td class="doc empty" - > </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" - > </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" - > </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("mini_BugDeprecated.html");}; +// </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" - > </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("mini_BugExportHeadings.html");}; +// </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" - > </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("mini_Bugs.html");}; +// </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" - > </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 -> <a href="" + > a (a -> <a href="#" >Int</a >)</td ><td class="doc empty" - > </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("mini_DeprecatedClass.html");}; +// </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" - > </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 -> 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 -> 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 -> a</p + > :: a -> 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 -> a</p + > :: a -> 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("mini_DeprecatedData.html");}; +// </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" - > </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("mini_DeprecatedFunction.html");}; +// </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" - > </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("mini_DeprecatedFunction2.html");}; +// </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" - > </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("mini_DeprecatedFunction3.html");}; +// </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" - > </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("mini_DeprecatedModule.html");}; +// </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" - > </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("mini_DeprecatedModule2.html");}; +// </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" - > </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("mini_DeprecatedNewtype.html");}; +// </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" - > </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("mini_DeprecatedReExport.html");}; +// </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" - > </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("mini_DeprecatedRecord.html");}; +// </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" - > </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" - > </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("mini_DeprecatedTypeFamily.html");}; +// </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" - > </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 :: * -> *</li + > k :: <a href="#" + >*</a + > -> <a href="#" + >*</a + ></li ><li class="src short" ><span class="keyword" >data family</span - > <a href="" + > <a href="#" >SomeOtherTypeFamily</a - > k :: * -> *</li + > k :: <a href="#" + >*</a + > -> <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 :: * -> *</p + > k :: <a href="#" + >*</a + > -> <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 :: * -> *</p + > k :: <a href="#" + >*</a + > -> <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("mini_DeprecatedTypeSynonym.html");}; +// </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" - > </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("mini_Examples.html");}; +// </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" - > </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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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("mini_Extensions.html");}; +// </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" - > </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("mini_FunArgs.html");}; +// </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" - > </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" - > </td + ></td ></tr ><tr ><td class="src" - >=> <a href="" + >=> <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" - >-> <a href="" + >-> <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" - > </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("mini_GADTRecords.html");}; +// </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" - > </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 => [a] -> <a href="" + > a => [a] -> <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 - > } -> <a href="" + > :: {..} -> <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 - > } -> <a href="" + > :: {..} -> <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" - > </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 => [a] -> <a href="" + > a => [a] -> <a href="#" >H1</a > a a</td ><td class="doc empty" - > </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 - > -> <a href="" + > :: {..} -> <a href="#" >H1</a - > <a href="" + > <a href="#" >Int</a - > <a href="" + > <a href="#" >Int</a ></td ><td class="doc empty" - > </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 -> <a href="" + > :: {..} -> <a href="#" >H1</a - > <a href="" + > <a href="#" >Int</a > a</td ><td class="doc empty" - > </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("mini_Hash.html");}; +// </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" - > </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) => <a href="" + > key) => <a href="#" >Int</a - > -> <a href="" + > -> <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) => key -> val -> <a href="" + > key) => key -> val -> <a href="#" >IO</a > ()</li ><li class="src short" - ><a href="" + ><a href="#" >lookup</a - > :: <a href="" + > :: <a href="#" >Hash</a - > key => key -> <a href="" + > key => key -> <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 -> <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) => <a href="" + > key) => <a href="#" >Int</a - > -> <a href="" + > -> <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) => key -> val -> <a href="" + > key) => key -> val -> <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 => key -> <a href="" + > key => key -> <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 -> <a href="" + > :: a -> <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" - > </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 - > -> <a href="" + > -> <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" - > </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 - > -> <a href="" + > -> <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) => <a href="" + > b) => <a href="#" >Hash</a > (a, b)</span + > <a href="#" class="selflink" + >#</a ></td ><td class="doc empty" - > </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) -> <a href="" + > :: (a, b) -> <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("mini_HiddenInstances.html");}; +// </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" - > </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 - > -> <a href="" + > -> <a href="#" >VisibleData</a - > -> <a href="" + > -> <a href="#" >VisibleData</a + > <a href="#" class="selflink" + >#</a ></p ><p class="src" - ><a href="" + ><a href="#" >(-)</a - > :: <a href="" + > :: <a href="#" >VisibleData</a - > -> <a href="" + > -> <a href="#" >VisibleData</a - > -> <a href="" + > -> <a href="#" >VisibleData</a + > <a href="#" class="selflink" + >#</a ></p ><p class="src" - ><a href="" + ><a href="#" >(*)</a - > :: <a href="" + > :: <a href="#" >VisibleData</a - > -> <a href="" + > -> <a href="#" >VisibleData</a - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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("mini_HiddenInstancesB.html");}; +// </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" - > </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("mini_Hyperlinks.html");}; +// </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" - > </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("mini_IgnoreExports.html");}; +// </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" - > </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("mini_ImplicitParams.html");}; +// </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" - > </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" - > </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 - >) => <a href="" + >) => <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 - >) => (<a href="" + >) => (<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 - >) => a) -> a</p + >) => 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/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("mini_Instances.html");}; +// +</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" + ><~~</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 -> (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="#" + >(<~~)</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="#" + ><~~</a + > <a href="#" + >Int</a + >) -> a -> a <a href="#" + ><~~</a + > a <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: (a <a href="#" + ><~~</a + > (a <a href="#" + ><~~</a + > a)) -> <a href="#" + >Int</a + > -> a <a href="#" + ><~~</a + > (a <a href="#" + ><~~</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 + > -> a -> f a <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a id="v:foo-39-" class="def" + >foo'</a + > :: f (f a) -> <a href="#" + >Int</a + > -> 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 + >] -> a -> [a] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: [[a]] -> <a href="#" + >Int</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: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 + > -> a -> <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) -> <a href="#" + >Int</a + > -> <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 + > ((->) 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 -> <a href="#" + >Int</a + >) -> a -> a -> a <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: (a -> a -> a) -> <a href="#" + >Int</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: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 + > -> a -> <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) -> <a href="#" + >Int</a + > -> <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) => <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 + >) -> a -> (f a, a) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: (f a, (f a, a)) -> <a href="#" + >Int</a + > -> (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="#" + >(<~~)</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="#" + ><~~</a + > <a href="#" + >Int</a + >) -> a -> a <a href="#" + ><~~</a + > a <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: (a <a href="#" + ><~~</a + > (a <a href="#" + ><~~</a + > a)) -> <a href="#" + >Int</a + > -> a <a href="#" + ><~~</a + > (a <a href="#" + ><~~</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 + >) -> a -> (a, a, a) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >foo'</a + > :: (a, a, (a, a, a)) -> <a href="#" + >Int</a + > -> (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 + > -> a -> <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) -> <a href="#" + >Int</a + > -> <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 => <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 -> f <a href="#" + >Bool</a + > -> a <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a id="v:bar-39-" class="def" + >bar'</a + > :: f (f a) -> 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) -> (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 + > -> <a href="#" + >Maybe</a + > <a href="#" + >Bool</a + > -> <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 + >) -> <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 + >) -> (<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 + >) -> (<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] -> <a href="#" + >Maybe</a + > <a href="#" + >Bool</a + > -> [a] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar'</a + > :: <a href="#" + >Maybe</a + > (<a href="#" + >Maybe</a + > [a]) -> <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]) -> (<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]) -> (<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)] -> [<a href="#" + >Bool</a + >] -> (a, a) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar'</a + > :: [[(a, a)]] -> [[[b]]] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar0</a + > :: ([(a, a)], [(a, a)]) -> ([b], [c]) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar1</a + > :: ([(a, a)], [(a, 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:4" class="instance expander" onclick="toggleSection('i:ic:Bar:Bar:4')" + ></span + > <a href="#" + >Foo</a + > f => <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) -> <a href="#" + >Either</a + > a <a href="#" + >Bool</a + > -> 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)) -> <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)) -> (<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)) -> (<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) => <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)) -> (a, b, <a href="#" + >Bool</a + >) -> (a, b, a) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >bar'</a + > :: (a, b, (a, b, (a, b, a))) -> (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))) -> ((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))) -> ((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) -> <a href="#" + >Quux</a + > a c <a href="#" + >Bool</a + > -> <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)) -> <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)) -> (<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)) -> (<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 -> (<span class="keyword" + >forall</span + > a. a -> a) -> (b, <span class="keyword" + >forall</span + > c. c -> a) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a id="v:baz-39-" class="def" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > b. b -> a) -> (<span class="keyword" + >forall</span + > b. b -> a) -> [(b, a)] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a id="v:baz-39--39-" class="def" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > b. (<span class="keyword" + >forall</span + > b. b -> a) -> c) -> <span class="keyword" + >forall</span + > c. c -> 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] -> (<span class="keyword" + >forall</span + > a. a -> a) -> (b, <span class="keyword" + >forall</span + > a. a -> [c]) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > b. b -> [c]) -> (<span class="keyword" + >forall</span + > b. b -> [c]) -> [(b, [c])] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > b. (<span class="keyword" + >forall</span + > a. a -> [c]) -> c) -> <span class="keyword" + >forall</span + > a. a -> 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 -> 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 -> b) -> (<span class="keyword" + >forall</span + > c. c -> c) -> (b, <span class="keyword" + >forall</span + > c. c -> a -> b) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > c. c -> a -> b) -> (<span class="keyword" + >forall</span + > c. c -> a -> b) -> [(b, a -> b)] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > c. (<span class="keyword" + >forall</span + > d. d -> a -> b) -> c) -> <span class="keyword" + >forall</span + > c. c -> 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) -> (<span class="keyword" + >forall</span + > d. d -> d) -> (b, <span class="keyword" + >forall</span + > d. d -> (a, b, c)) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > d. d -> (a, b, c)) -> (<span class="keyword" + >forall</span + > d. d -> (a, b, c)) -> [(b, (a, b, c))] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > d. (<span class="keyword" + >forall</span + > e. e -> (a, b, c)) -> c) -> <span class="keyword" + >forall</span + > d. d -> 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 -> (<span class="keyword" + >forall</span + > d. d -> d) -> (b, <span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> (<span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> [(b, <a href="#" + >Quux</a + > a b c)] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > d. (<span class="keyword" + >forall</span + > e. e -> <a href="#" + >Quux</a + > a b c) -> c) -> <span class="keyword" + >forall</span + > d. d -> 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) -> (<span class="keyword" + >forall</span + > c. c -> c) -> (b, <span class="keyword" + >forall</span + > c. c -> (a, [b], b, a)) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > c. c -> (a, [b], b, a)) -> (<span class="keyword" + >forall</span + > c. c -> (a, [b], b, a)) -> [(b, (a, [b], b, a))] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > c. (<span class="keyword" + >forall</span + > d. d -> (a, [b], b, a)) -> c) -> <span class="keyword" + >forall</span + > c. c -> 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 + > -> a -> <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) -> <a href="#" + >Int</a + > -> <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) -> <a href="#" + >Quux</a + > a c <a href="#" + >Bool</a + > -> <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)) -> <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)) -> (<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)) -> (<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 -> (<span class="keyword" + >forall</span + > d. d -> d) -> (b, <span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> (b, c) <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz'</a + > :: b -> (<span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> (<span class="keyword" + >forall</span + > d. d -> <a href="#" + >Quux</a + > a b c) -> [(b, <a href="#" + >Quux</a + > a b c)] <a href="#" class="selflink" + >#</a + ></p + ><p class="src" + ><a href="#" + >baz''</a + > :: b -> (<span class="keyword" + >forall</span + > d. (<span class="keyword" + >forall</span + > e. e -> <a href="#" + >Quux</a + > a b c) -> c) -> <span class="keyword" + >forall</span + > d. d -> 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 -> a -> (a -> c) -> 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 + > -> <a href="#" + >Int</a + > -> (<a href="#" + >Int</a + > -> c) -> <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] -> [a] -> ([a] -> c) -> [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("mini_Math.html");}; +// </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" - > </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("mini_Minimal.html");}; +// </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" - > </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("mini_ModuleWithWarning.html");}; +// </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" - > </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("mini_NamedDoc.html");}; +// </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" - > </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("mini_Nesting.html");}; +// </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" - > </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("mini_NoLayout.html");}; +// </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" - > </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("mini_NonGreedy.html");}; +// </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" - > </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("mini_Operators.html");}; +// </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" - > </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 -> a -> a</li ><li class="src short" - ><a href="" + ><a href="#" >(*/)</a > :: a -> a -> a</li ><li class="src short" - ><a href="" + ><a href="#" >foo</a > :: a -> a -> 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 -> t -> [t]</li + > :: <span class="keyword" + >forall</span + > t. t -> t -> [t]</li ><li class="src short" ><span class="keyword" >data</span - > a <a href="" + > a <a href="#" ><-></a > b <span class="keyword" >where</span ><ul class="subs" ><li - ><a href="" + ><a href="#" >(:<->)</a - > :: a -> b -> a <a href="" + > :: a -> b -> a <a href="#" ><-></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="#" >><></a - > b <span class="keyword" + > b | a -> b <span class="keyword" >where</span ><ul class="subs" ><li ><span class="keyword" >type</span - > a <a href="" + > a <a href="#" ><><</a - > b :: *</li + > b :: <a href="#" + >*</a + ></li ><li ><span class="keyword" >data</span - > a <a href="" + > a <a href="#" >><<</a > b</li - ><li - ><a href="" - >(>><)</a - >, <a href="" - >(<<>)</a - > :: a -> b -> ()</li - ><li - ><a href="" - >(**>)</a - >, <a href="" - >(**<)</a - >, <a href="" - >(>**)</a - >, <a href="" - >(<**)</a - > :: a -> a -> ()</li ></ul ></li ><li class="src short" ><span class="keyword" >type</span - > <a href="" + > <a href="#" >(>-<)</a - > a b = a <a href="" + > a b = a <a href="#" ><-></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 -> a -> a</p + > :: a -> a -> 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 -> a -> 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 -> a -> 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 -> t -> [t] <span class="fixity" + > :: <span class="keyword" + >forall</span + > t. t -> t -> [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" ><-></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" >(:<->)</a - > :: a -> b -> a <a href="" + > :: a -> b -> a <a href="#" ><-></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" - > </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" >><></a - > b <span class="keyword" + > b | a -> 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="#" + >(>><)</a + >, <a href="#" + >(<<>)</a + >, <a href="#" + >(**>)</a + >, <a href="#" + >(**<)</a + >, <a href="#" + >(>**)</a + >, <a href="#" + >(<**)</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" ><><</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" >><<</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" >(>><)</a - >, <a href="" id="v:-60--60--62-" class="def" + >, <a id="v:-60--60--62-" class="def" >(<<>)</a > :: a -> b -> () <span class="fixity" >infixl 5 <<></span @@ -407,15 +440,17 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");}; >infixr 4 >><</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" >(**>)</a - >, <a href="" id="v:-42--42--60-" class="def" + >, <a id="v:-42--42--60-" class="def" >(**<)</a - >, <a href="" id="v:-62--42--42-" class="def" + >, <a id="v:-62--42--42-" class="def" >(>**)</a - >, <a href="" id="v:-60--42--42-" class="def" + >, <a id="v:-60--42--42-" class="def" >(<**)</a > :: a -> a -> () <span class="fixity" >infixr 8 **>, >**</span @@ -423,6 +458,8 @@ window.onload = function () {pageLoad();setSynopsis("mini_Operators.html");}; >infixl 8 **<, <**</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" >(>-<)</a - > a b = a <a href="" + > a b = a <a href="#" ><-></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("mini_OrphanInstances.html");}; +// </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" - > </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 - > -> <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 + > <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("mini_OrphanInstancesClass.html");}; +// </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" - > </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 -> <a href="/opt/exp/ghc/roots/landing/share/doc/ghc/html/libraries/base-4.9.0.0/Data-Int.html#t:Int" + > :: a -> <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("mini_OrphanInstancesType.html");}; +// </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" - > </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" - > </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("mini_PatternSyns.html");}; +// </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" - > </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 -> <a href="" + > :: <span class="keyword" + >forall</span + > t. t -> <a href="#" >FooType</a > t</li ><li class="src short" ><span class="keyword" >pattern</span - > <a href="" + > <a href="#" >Bar</a - > :: t -> <a href="" + > :: <span class="keyword" + >forall</span + > t. t -> <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="#" >(:<->)</a - > :: t -> t -> (<a href="" + > :: <span class="keyword" + >forall</span + > t t. t -> t -> (<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="#" >><</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="#" >(><)</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" - > </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 -> <a href="" + > :: <span class="keyword" + >forall</span + > t. t -> <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 -> <a href="" + > :: <span class="keyword" + >forall</span + > t. 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="#" >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" >(:<->)</a - > :: t -> t -> (<a href="" + > :: <span class="keyword" + >forall</span + > t t. t -> t -> (<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="#" >:<-></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" >><</a - > b</p + > b <a href="#" class="selflink" + >#</a + ></p ><div class="doc" ><p >Doc for (<code - ><a href="" + ><a href="#" >><</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" - > </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="#" >(><)</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("mini_PromotedTypes.html");}; +// </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" - > </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" - > </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" >:></a > a</td ><td class="doc empty" - > </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 - > :: [*] -> * <span class="keyword" + > :: [<a href="#" + >*</a + >] -> <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" - > </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 -> <a href="" + > h -> <a href="#" >Pattern</a - > t -> <a href="" + > t -> <a href="#" >Pattern</a > (h ': t)</td ><td class="doc empty" - > </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 - > * -> * <span class="keyword" + > <a href="#" + >*</a + > -> <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" - > </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 -> <a href="" + > h -> <a href="#" >RevPattern</a - > t -> <a href="" + > t -> <a href="#" >RevPattern</a - > (t <a href="" + > (t <a href="#" >:></a > h)</td ><td class="doc empty" - > </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 - > :: (*, *) -> * <span class="keyword" + > :: (<a href="#" + >*</a + >, <a href="#" + >*</a + >) -> <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 -> b -> <a href="" + > :: a -> b -> <a href="#" >Tuple</a > '(a, b)</td ><td class="doc empty" - > </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("mini_Properties.html");}; +// </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" - > </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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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("mini_PruneWithWarning.html");}; +// </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" - > </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("mini_QuasiExpr.html");}; +// </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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 - > -> <a href="" + > -> <a href="#" >Expr</a - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 - >] -> <a href="" + >] -> <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" - > </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" - > </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" - > </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" - > </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" - > </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 - > -> <a href="" + > -> <a href="#" >BinOp</a - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 - >] -> <a href="" + >] -> <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 - > -> <a href="" + > -> <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 - > -> Q Exp</p + > -> 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("mini_QuasiQuote.html");}; +// </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" - > </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("mini_SpuriousSuperclassConstraints.html");}; +// </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" - > </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" - > </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 -> b) -> <a href="" + > :: (a -> b) -> <a href="#" >SomeType</a - > f a -> <a href="" + > f a -> <a href="#" >SomeType</a - > f b</p + > f b <a href="#" class="selflink" + >#</a + ></p ><p class="src" - ><a href="" + ><a href="#" >(<$)</a - > :: a -> <a href="" + > :: a -> <a href="#" >SomeType</a - > f b -> <a href="" + > f b -> <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 => <a href="" + > f => <a href="#" >Applicative</a - > (<a href="" + > (<a href="#" >SomeType</a > f)</span + > <a href="#" class="selflink" + >#</a ></td ><td class="doc empty" - > </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 -> <a href="" + > :: a -> <a href="#" >SomeType</a - > f a</p + > f a <a href="#" class="selflink" + >#</a + ></p ><p class="src" - ><a href="" + ><a href="#" >(<*>)</a - > :: <a href="" + > :: <a href="#" >SomeType</a - > f (a -> b) -> <a href="" + > f (a -> b) -> <a href="#" >SomeType</a - > f a -> <a href="" + > f a -> <a href="#" >SomeType</a - > f b</p + > f b <a href="#" class="selflink" + >#</a + ></p ><p class="src" - ><a href="" + ><a href="#" >(*>)</a - > :: <a href="" + > :: <a href="#" >SomeType</a - > f a -> <a href="" + > f a -> <a href="#" >SomeType</a - > f b -> <a href="" + > f b -> <a href="#" >SomeType</a - > f b</p + > f b <a href="#" class="selflink" + >#</a + ></p ><p class="src" - ><a href="" + ><a href="#" >(<*)</a - > :: <a href="" + > :: <a href="#" >SomeType</a - > f a -> <a href="" + > f a -> <a href="#" >SomeType</a - > f b -> <a href="" + > f b -> <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("mini_TH.html");}; +// </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" - > </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("mini_TH2.html");}; +// </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" - > </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 -> t</p + > :: t -> 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("mini_Test.html");}; +// </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" - > </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 & 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 -> 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 -> <a href="" + > :: T1 -> <a href="#" >T2</a - > <a href="" + > <a href="#" >Int</a - > <a href="" + > <a href="#" >Int</a - > -> <a href="" + > -> <a href="#" >T3</a - > <a href="" + > <a href="#" >Bool</a - > <a href="" + > <a href="#" >Bool</a - > -> <a href="" + > -> <a href="#" >T4</a - > <a href="" + > <a href="#" >Float</a - > <a href="" + > <a href="#" >Float</a - > -> <a href="" + > -> <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 => <a href="" + > a => <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 => <a href="#" + >IO</a + > a</li + ><li class="src short" + ><a href="#" >f</a - > :: <a href="" + > :: <a href="#" >C</a - > a => a -> <a href="" + > a => a -> <a href="#" >Int</a ></li ><li class="src short" - ><a href="" + ><a href="#" >g</a - > :: <a href="" + > :: <a href="#" >Int</a - > -> <a href="" + > -> <a href="#" >IO</a > CInt</li ><li class="src short" - ><a href="" + ><a href="#" >hidden</a - > :: <a href="" + > :: <a href="#" >Int</a - > -> <a href="" + > -> <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 => <a href="" + > b => <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 => <a href="" + > a => <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 - > () () -> <a href="" + > () () -> <a href="#" >T2</a - > <a href="" + > <a href="#" >Int</a - > <a href="" + > <a href="#" >Int</a - > -> (<a href="" + > -> (<a href="#" >T3</a - > <a href="" + > <a href="#" >Bool</a - > <a href="" + > <a href="#" >Bool</a - > -> <a href="" + > -> <a href="#" >T4</a - > <a href="" + > <a href="#" >Float</a - > <a href="" + > <a href="#" >Float</a - >) -> <a href="" + >) -> <a href="#" >T5</a - > () () -> <a href="" + > () () -> <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 - >) -> <a href="" + >) -> <a href="#" >Int</a ></li ><li class="src short" - ><a href="" + ><a href="#" >m</a - > :: <a href="" + > :: <a href="#" >R</a - > -> <a href="" + > -> <a href="#" >N1</a - > () -> <a href="" + > () -> <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 - > -> <a href="" + > -> <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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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" - > </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 -> <a href="" + > :: T1 -> <a href="#" >T2</a - > <a href="" + > <a href="#" >Int</a - > <a href="" + > <a href="#" >Int</a - > -> <a href="" + > -> <a href="#" >T3</a - > <a href="" + > <a href="#" >Bool</a - > <a href="" + > <a href="#" >Bool</a - > -> <a href="" + > -> <a href="#" >T4</a - > <a href="" + > <a href="#" >Float</a - > <a href="" + > <a href="#" >Float</a - > -> <a href="" + > -> <a href="#" >T5</a > () ()</dfn ><div class="doc empty" - > </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" - > </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 => <a href="" id="t:C" class="def" + > a => <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" - > </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" - > </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 => <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 => a -> <a href="" + > a => a -> <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 - > -> <a href="" + > -> <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 - > -> <a href="" + > -> <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 => <a href="" id="v:Ex1" class="def" + > b => <a id="v:Ex1" class="def" >Ex1</a > b</td ><td class="doc empty" - > </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" - > </td + ></td ></tr ><tr ><td class="src" - ><span class="keyword" - >forall</span - > b . <a href="" + ><a href="#" >C</a - > a => <a href="" id="v:Ex3" class="def" + > a => <a id="v:Ex3" class="def" >Ex3</a > b</td ><td class="doc empty" - > </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 -> a)</td ><td class="doc empty" - > </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" - >-> <a href="" + >-> <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" - >-> (<a href="" + >-> (<a href="#" >T3</a - > <a href="" + > <a href="#" >Bool</a - > <a href="" + > <a href="#" >Bool</a - > -> <a href="" + > -> <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" - >-> <a href="" + >-> <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" - >-> <a href="" + >-> <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" - >-> <a href="" + >-> <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" - > </td + ></td ></tr ><tr ><td class="src" - >-> <a href="" + >-> <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" - >-> <a href="" + >-> <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" - >-> <a href="" + >-> <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("mini_Threaded.html");}; +// </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" - > </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("mini_Threaded_TH.html");}; +// +</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("mini_Ticket112.html");}; +// </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" - > </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("mini_Ticket61.html");}; +// </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" - > </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("mini_Ticket75.html");}; +// </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" - > </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" - > </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("mini_TitledPicture.html");}; +// </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" - > </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∣∁∘" title="δ∈" @@ -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("mini_TypeFamilies.html");}; +// </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" - > </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="#" ><></a > b :: k</li ><li class="src short" ><span class="keyword" >class</span - > a <a href="" + > a <a href="#" >><</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="#" + >(><)</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="" - >(><)</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" - > </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="#" + >(<>)</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" - > </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" - > </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="" - >(<>)</a - > * <a href="" - >X</a - > a = <a href="" - >X</a - ></span + > <a href="#" class="selflink" + >#</a ></td ><td class="doc empty" - > </td + ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="keyword" >type</span - > <a href="" + > <a href="#" >(<>)</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" - > </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" - > </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" - > </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" - > </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="#" >(<>)</a - > * <a href="" + > <a href="#" + >*</a + > <a href="#" >Y</a > a = a</span + > <a href="#" class="selflink" + >#</a ></td ><td class="doc empty" - > </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" - > </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" - > </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 - > -> <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 - > } -> <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 - > -> <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 - > } -> <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" - > </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" - > </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" ><></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="#" >(<>)</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" - > </td + ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="keyword" >type</span - > <a href="" + > <a href="#" >(<>)</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" - > </td + ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="keyword" >type</span - > <a href="" + > <a href="#" >(<>)</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" - > </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" >><</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="#" >(><)</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" - > </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("mini_TypeFamilies2.html");}; +// </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" - > </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" - > </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("mini_TypeOperators.html");}; +// </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" - > </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" - > </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" - > </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" ><=></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) => a -> b</p + > :: a ~ b => a -> 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) => a -> c</p + > :: (a ~ b, b ~ c) => a -> 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="#" ><=></a - > (a <a href="" + > (a <a href="#" >`Op`</a - > a) => a</p + > a) => 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="#" ><=></a - > a, (a <a href="" + > a, (a <a href="#" >`Op`</a - > a) <a href="" + > a) <a href="#" ><=></a - > a) => a</p + > 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/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("mini_Unicode.html");}; +// </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" - > </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("mini_Visible.html");}; +// </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" - > </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 - > -> <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/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 @@ >-></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 @@ >-></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 @@ >-></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 @@ >-></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 @@ >-></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 @@ >-></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 @@ >=></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 @@ >=></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 @@ >-></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" + >-></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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-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" + >-></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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-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" + >-></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ><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-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" + >-></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >b</span + ></a + ><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-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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >-></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" + >=></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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" + >-></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" + >=></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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" + >-></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" + >=></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" + >-></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" + >-></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" + >=></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" + >-></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" + >-></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" + >=></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" + >-></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" + >-></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" + >=></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" + >-></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" + >-></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" + >-></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" + >=></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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 + ><span class="hs-glyph" + >-></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" + >-></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" + >=></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</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 + ><span class="hs-glyph" + >-></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" + >-></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" + >-></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" + >-></span + ><span + > </span + ><a href="#" + ><span class="hs-identifier hs-type" + >a</span + ></a + ><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-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" + >-></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 = (==) } |