<!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"
     /><script src="haddock-util.js" type="text/javascript"
    ></script
    ><script type="text/javascript"
    >//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Test.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"
      >&nbsp;</p
      ></div
    ><div id="content"
    ><div id="module-header"
      ><table class="info"
	><tr
	  ><th
	    >Copyright</th
	    ><td
	    >(c) Simon Marlow 2002</td
	    ></tr
	  ><tr
	  ><th
	    >License</th
	    ><td
	    >BSD-style</td
	    ></tr
	  ><tr
	  ><th
	    >Maintainer</th
	    ><td
	    >libraries@haskell.org</td
	    ></tr
	  ><tr
	  ><th
	    >Stability</th
	    ><td
	    >provisional</td
	    ></tr
	  ><tr
	  ><th
	    >Portability</th
	    ><td
	    >portable</td
	    ></tr
	  ><tr
	  ><th
	    >Safe Haskell</th
	    ><td
	    >Safe-Inferred</td
	    ></tr
	  ></table
	><p class="caption"
	>Test</p
	></div
      ><div id="table-of-contents"
      ><p class="caption"
	>Contents</p
	><ul
	><li
	  ><a href=""
	    >Type declarations</a
	    ><ul
	    ><li
	      ><a href=""
		>Data types</a
		></li
	      ><li
	      ><a href=""
		>Records</a
		></li
	      ></ul
	    ></li
	  ><li
	  ><a href=""
	    >Class declarations</a
	    ></li
	  ><li
	  ><a href=""
	    >Function types</a
	    ></li
	  ><li
	  ><a href=""
	    >Auxiliary stuff</a
	    ></li
	  ><li
	  ><a href=""
	    >A hidden module</a
	    ></li
	  ><li
	  ><a href=""
	    >A visible module</a
	    ></li
	  ><li
	  ><a href=""
	    >Existential / Universal types</a
	    ></li
	  ><li
	  ><a href=""
	    >Type signatures with argument docs</a
	    ></li
	  ><li
	  ><a href=""
	    >A section</a
	    ><ul
	    ><li
	      ><a href=""
		>A subsection</a
		></li
	      ></ul
	    ></li
	  ></ul
	></div
      ><div id="description"
      ><p class="caption"
	>Description</p
	><div class="doc"
	><p
	  >This module illustrates &amp; tests most of the features of Haddock.
 Testing references from the description: <code
	    ><a href=""
	      >T</a
	      ></code
	    >, <code
	    ><a href=""
	      >f</a
	      ></code
	    >, <code
	    ><a href=""
	      >g</a
	      ></code
	    >, <code
	    ><a href=""
	      >visible</a
	      ></code
	    >.</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"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T</a
	    > a b<ul class="subs"
	    ><li
	      >= <a href=""
		>A</a
		> <a href=""
		>Int</a
		> (<a href=""
		>Maybe</a
		> <a href=""
		>Float</a
		>)</li
	      ><li
	      >| <a href=""
		>B</a
		> (<a href=""
		>T</a
		> a b, <a href=""
		>T</a
		> <a href=""
		>Int</a
		> <a href=""
		>Float</a
		>)</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T2</a
	    > a b</li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T3</a
	    > a b<ul class="subs"
	    ><li
	      >= <a href=""
		>A1</a
		> a</li
	      ><li
	      >| <a href=""
		>B1</a
		> b</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T4</a
	    > a b<ul class="subs"
	    ><li
	      >= <a href=""
		>A2</a
		> a</li
	      ><li
	      >| <a href=""
		>B2</a
		> b</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T5</a
	    > a b<ul class="subs"
	    ><li
	      >= <a href=""
		>A3</a
		> a</li
	      ><li
	      >| <a href=""
		>B3</a
		> b</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >T6</a
	    ><ul class="subs"
	    ><li
	      >= <a href=""
		>A4</a
		></li
	      ><li
	      >| <a href=""
		>B4</a
		></li
	      ><li
	      >| <a href=""
		>C4</a
		></li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N1</a
	    > a = <a href=""
	    >N1</a
	    > a</li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N2</a
	    > a b = <a href=""
	    >N2</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>n</a
		> :: a b</li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N3</a
	    > a b = <a href=""
	    >N3</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>n3</a
		> :: a b</li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >N4</a
	    > a b</li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N5</a
	    > a b = <a href=""
	    >N5</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>n5</a
		> :: a b</li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N6</a
	    > a b = <a href=""
	    >N6</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>n6</a
		> :: a b</li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >newtype</span
	    > <a href=""
	    >N7</a
	    > a b = <a href=""
	    >N7</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>n7</a
		> :: a b</li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >R</a
	    ><ul class="subs"
	    ><li
	      >= <a href=""
		>C1</a
		> { <ul class="subs"
		><li
		  ><a href=""
		    >p</a
		    > :: <a href=""
		    >Int</a
		    ></li
		  ><li
		  ><a href=""
		    >q</a
		    > :: <span class="keyword"
		    >forall</span
		    > a. a -&gt; a</li
		  ><li
		  ><a href=""
		    >r</a
		    > :: <a href=""
		    >Int</a
		    ></li
		  ><li
		  ><a href=""
		    >s</a
		    > :: <a href=""
		    >Int</a
		    ></li
		  ></ul
		> }</li
	      ><li
	      >| <a href=""
		>C2</a
		> { <ul class="subs"
		><li
		  ><a href=""
		    >t</a
		    > :: T1 -&gt; <a href=""
		    >T2</a
		    > <a href=""
		    >Int</a
		    > <a href=""
		    >Int</a
		    > -&gt; <a href=""
		    >T3</a
		    > <a href=""
		    >Bool</a
		    > <a href=""
		    >Bool</a
		    > -&gt; <a href=""
		    >T4</a
		    > <a href=""
		    >Float</a
		    > <a href=""
		    >Float</a
		    > -&gt; <a href=""
		    >T5</a
		    > () ()</li
		  ><li
		  ><a href=""
		    >u</a
		    > :: <a href=""
		    >Int</a
		    ></li
		  ><li
		  ><a href=""
		    >v</a
		    > :: <a href=""
		    >Int</a
		    ></li
		  ></ul
		> }</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >R1</a
	    > = <a href=""
	    >C3</a
	    > {<ul class="subs"
	    ><li
	      ><a href=""
		>s1</a
		> :: <a href=""
		>Int</a
		></li
	      ><li
	      ><a href=""
		>s2</a
		> :: <a href=""
		>Int</a
		></li
	      ><li
	      ><a href=""
		>s3</a
		> :: <a href=""
		>Int</a
		></li
	      ></ul
	    >}</li
	  ><li class="src short"
	  ><span class="keyword"
	    >class</span
	    > <a href=""
	    >D</a
	    > a =&gt; <a href=""
	    >C</a
	    > a <span class="keyword"
	    >where</span
	    ><ul class="subs"
	    ><li
	      ><a href=""
		>a</a
		> :: <a href=""
		>IO</a
		> a</li
	      ><li
	      ><a href=""
		>b</a
		> :: [a]</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >class</span
	    > <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
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >class</span
	    > <a href=""
	    >E</a
	    > a</li
	  ><li class="src short"
	  ><span class="keyword"
	    >class</span
	    > <a href=""
	    >F</a
	    > a <span class="keyword"
	    >where</span
	    ><ul class="subs"
	    ><li
	      ><a href=""
		>ff</a
		> :: a</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >f</a
	    > :: <a href=""
	    >C</a
	    > a =&gt; a -&gt; <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >g</a
	    > :: <a href=""
	    >Int</a
	    > -&gt; <a href=""
	    >IO</a
	    > CInt</li
	  ><li class="src short"
	  ><a href=""
	    >hidden</a
	    > :: <a href=""
	    >Int</a
	    > -&gt; <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  >module <a href=""
	    >Visible</a
	    ></li
	  ><li class="src short"
	  ><span class="keyword"
	    >data</span
	    > <a href=""
	    >Ex</a
	    > a<ul class="subs"
	    ><li
	      >= <span class="keyword"
		>forall</span
		> b . <a href=""
		>C</a
		> b =&gt; <a href=""
		>Ex1</a
		> b</li
	      ><li
	      >| <span class="keyword"
		>forall</span
		> b . <a href=""
		>Ex2</a
		> b</li
	      ><li
	      >| <span class="keyword"
		>forall</span
		> b . <a href=""
		>C</a
		> a =&gt; <a href=""
		>Ex3</a
		> b</li
	      ><li
	      >| <a href=""
		>Ex4</a
		> (<span class="keyword"
		>forall</span
		> a. a -&gt; a)</li
	      ></ul
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >k</a
	    > :: <a href=""
	    >T</a
	    > () () -&gt; <a href=""
	    >T2</a
	    > <a href=""
	    >Int</a
	    > <a href=""
	    >Int</a
	    > -&gt; (<a href=""
	    >T3</a
	    > <a href=""
	    >Bool</a
	    > <a href=""
	    >Bool</a
	    > -&gt; <a href=""
	    >T4</a
	    > <a href=""
	    >Float</a
	    > <a href=""
	    >Float</a
	    >) -&gt; <a href=""
	    >T5</a
	    > () () -&gt; <a href=""
	    >IO</a
	    > ()</li
	  ><li class="src short"
	  ><a href=""
	    >l</a
	    > :: (<a href=""
	    >Int</a
	    >, <a href=""
	    >Int</a
	    >, <a href=""
	    >Float</a
	    >) -&gt; <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >m</a
	    > :: <a href=""
	    >R</a
	    > -&gt; <a href=""
	    >N1</a
	    > () -&gt; <a href=""
	    >IO</a
	    > <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >o</a
	    > :: <a href=""
	    >Float</a
	    > -&gt; <a href=""
	    >IO</a
	    > <a href=""
	    >Float</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >f'</a
	    > :: <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >withType</a
	    > :: <a href=""
	    >Int</a
	    ></li
	  ><li class="src short"
	  ><a href=""
	    >withoutType</a
	    > ::  t</li
	  ></ul
	></div
      ><div id="interface"
      ><h1 id="g:1"
	>Type declarations</h1
	><h2 id="g:2"
	>Data types</h2
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T" class="def"
	    >T</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >This comment applies to the <em
	      >following</em
	      > declaration
 and it continues until the next non-comment line</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:A" class="def"
		  >A</a
		  > <a href=""
		  >Int</a
		  > (<a href=""
		  >Maybe</a
		  > <a href=""
		  >Float</a
		  >)</td
		><td class="doc"
		><p
		  >This comment describes the <code
		    ><a href=""
		      >A</a
		      ></code
		    > constructor</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:B" class="def"
		  >B</a
		  > (<a href=""
		  >T</a
		  > a b, <a href=""
		  >T</a
		  > <a href=""
		  >Int</a
		  > <a href=""
		  >Float</a
		  >)</td
		><td class="doc"
		><p
		  >This comment describes the <code
		    ><a href=""
		      >B</a
		      ></code
		    > constructor</p
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T2" class="def"
	    >T2</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >An abstract data declaration</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T3" class="def"
	    >T3</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >A data declaration with no documentation annotations on the constructors</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:A1" class="def"
		  >A1</a
		  > a</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:B1" class="def"
		  >B1</a
		  > b</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T4" class="def"
	    >T4</a
	    > a b</p
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:A2" class="def"
		  >A2</a
		  > a</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:B2" class="def"
		  >B2</a
		  > b</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T5" class="def"
	    >T5</a
	    > a b</p
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:A3" class="def"
		  >A3</a
		  > a</td
		><td class="doc"
		><p
		  >documents <code
		    ><a href=""
		      >A3</a
		      ></code
		    ></p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:B3" class="def"
		  >B3</a
		  > b</td
		><td class="doc"
		><p
		  >documents <code
		    ><a href=""
		      >B3</a
		      ></code
		    ></p
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:T6" class="def"
	    >T6</a
	    ></p
	  ><div class="doc"
	  ><p
	    >Testing alternative comment styles</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:A4" class="def"
		  >A4</a
		  ></td
		><td class="doc"
		><p
		  >This is the doc for <code
		    ><a href=""
		      >A4</a
		      ></code
		    ></p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:B4" class="def"
		  >B4</a
		  ></td
		><td class="doc"
		><p
		  >This is the doc for <code
		    ><a href=""
		      >B4</a
		      ></code
		    ></p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:C4" class="def"
		  >C4</a
		  ></td
		><td class="doc"
		><p
		  >This is the doc for <code
		    ><a href=""
		      >C4</a
		      ></code
		    ></p
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N1" class="def"
	    >N1</a
	    > a</p
	  ><div class="doc"
	  ><p
	    >A newtype</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N1" class="def"
		  >N1</a
		  > a</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N2" class="def"
	    >N2</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >A newtype with a fieldname</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N2" class="def"
		  >N2</a
		  ></td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:n" class="def"
			>n</a
			> :: a b</dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N3" class="def"
	    >N3</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >A newtype with a fieldname, documentation on the field</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N3" class="def"
		  >N3</a
		  ></td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:n3" class="def"
			>n3</a
			> :: a b</dt
		      ><dd class="doc"
		      ><p
			>this is the <code
			  ><a href=""
			    >n3</a
			    ></code
			  > field</p
			></dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:N4" class="def"
	    >N4</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >An abstract newtype - we show this one as data rather than newtype because
 the difference isn't visible to the programmer for an abstract type.</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N5" class="def"
	    >N5</a
	    > a b</p
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N5" class="def"
		  >N5</a
		  ></td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:n5" class="def"
			>n5</a
			> :: a b</dt
		      ><dd class="doc"
		      ><p
			>no docs on the datatype or the constructor</p
			></dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N6" class="def"
	    >N6</a
	    > a b</p
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N6" class="def"
		  >N6</a
		  ></td
		><td class="doc"
		><p
		  >docs on the constructor only</p
		  ></td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:n6" class="def"
			>n6</a
			> :: a b</dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >newtype</span
	    > <a name="t:N7" class="def"
	    >N7</a
	    > a b</p
	  ><div class="doc"
	  ><p
	    >docs on the newtype and the constructor</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:N7" class="def"
		  >N7</a
		  ></td
		><td class="doc"
		><p
		  >The <code
		    ><a href=""
		      >N7</a
		      ></code
		    > constructor</p
		  ></td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:n7" class="def"
			>n7</a
			> :: a b</dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><h2 id="g:3"
	>Records</h2
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:R" class="def"
	    >R</a
	    ></p
	  ><div class="doc"
	  ><p
	    >This is the documentation for the <code
	      ><a href=""
		>R</a
		></code
	      > record, which has four fields,
 <code
	      ><a href=""
		>p</a
		></code
	      >, <code
	      ><a href=""
		>q</a
		></code
	      >, <code
	      ><a href=""
		>r</a
		></code
	      >, and <code
	      ><a href=""
		>s</a
		></code
	      >.</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:C1" class="def"
		  >C1</a
		  ></td
		><td class="doc"
		><p
		  >This is the <code
		    ><a href=""
		      >C1</a
		      ></code
		    > record constructor, with the following fields:</p
		  ></td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:p" class="def"
			>p</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>This comment applies to the <code
			  ><a href=""
			    >p</a
			    ></code
			  > field</p
			></dd
		      ><dt class="src"
		      ><a name="v:q" class="def"
			>q</a
			> :: <span class="keyword"
			>forall</span
			> a. a -&gt; a</dt
		      ><dd class="doc"
		      ><p
			>This comment applies to the <code
			  ><a href=""
			    >q</a
			    ></code
			  > field</p
			></dd
		      ><dt class="src"
		      ><a name="v:r" class="def"
			>r</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>This comment applies to both <code
			  ><a href=""
			    >r</a
			    ></code
			  > and <code
			  ><a href=""
			    >s</a
			    ></code
			  ></p
			></dd
		      ><dt class="src"
		      ><a name="v:s" class="def"
			>s</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>This comment applies to both <code
			  ><a href=""
			    >r</a
			    ></code
			  > and <code
			  ><a href=""
			    >s</a
			    ></code
			  ></p
			></dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:C2" class="def"
		  >C2</a
		  ></td
		><td class="doc"
		><p
		  >This is the <code
		    ><a href=""
		      >C2</a
		      ></code
		    > record constructor, also with some fields:</p
		  ></td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:t" class="def"
			>t</a
			> :: T1 -&gt; <a href=""
			>T2</a
			> <a href=""
			>Int</a
			> <a href=""
			>Int</a
			> -&gt; <a href=""
			>T3</a
			> <a href=""
			>Bool</a
			> <a href=""
			>Bool</a
			> -&gt; <a href=""
			>T4</a
			> <a href=""
			>Float</a
			> <a href=""
			>Float</a
			> -&gt; <a href=""
			>T5</a
			> () ()</dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ><dt class="src"
		      ><a name="v:u" class="def"
			>u</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ><dt class="src"
		      ><a name="v:v" class="def"
			>v</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc empty"
		      >&nbsp;</dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:R1" class="def"
	    >R1</a
	    ></p
	  ><div class="doc"
	  ><p
	    >Testing different record commenting styles</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><a name="v:C3" class="def"
		  >C3</a
		  ></td
		><td class="doc"
		><p
		  >This is the <code
		    ><a href=""
		      >C3</a
		      ></code
		    > record constructor</p
		  ></td
		></tr
	      ><tr
	      ><td colspan="2"
		><div class="subs fields"
		  ><p class="caption"
		    >Fields</p
		    ><dl
		    ><dt class="src"
		      ><a name="v:s1" class="def"
			>s1</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>The <code
			  ><a href=""
			    >s1</a
			    ></code
			  > record selector</p
			></dd
		      ><dt class="src"
		      ><a name="v:s2" class="def"
			>s2</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>The <code
			  ><a href=""
			    >s2</a
			    ></code
			  > record selector</p
			></dd
		      ><dt class="src"
		      ><a name="v:s3" class="def"
			>s3</a
			> :: <a href=""
			>Int</a
			></dt
		      ><dd class="doc"
		      ><p
			>The <code
			  ><a href=""
			    >s3</a
			    ></code
			  > record selector</p
			></dd
		      ></dl
		    ><div class="clear"
		    ></div
		    ></div
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="doc"
	><p
	  >test that we can export record selectors on their own:</p
	  ></div
	><h1 id="g:4"
	>Class declarations</h1
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >class</span
	    > <a href=""
	    >D</a
	    > a =&gt; <a name="t:C" class="def"
	    >C</a
	    > a <span class="keyword"
	    >where</span
	    ></p
	  ><div class="doc"
	  ><p
	    >This comment applies to the <em
	      >previous</em
	      > declaration (the <code
	      ><a href=""
		>C</a
		></code
	      > class)</p
	    ></div
	  ><div class="subs methods"
	  ><p class="caption"
	    >Methods</p
	    ><p class="src"
	    ><a name="v:a" class="def"
	      >a</a
	      > :: <a href=""
	      >IO</a
	      > a</p
	    ><div class="doc"
	    ><p
	      >this is a description of the <code
		><a href=""
		  >a</a
		  ></code
		> method</p
	      ></div
	    ><p class="src"
	    ><a name="v:b" class="def"
	      >b</a
	      > :: [a]</p
	    ><div class="doc"
	    ><p
	      >this is a description of the <code
		><a href=""
		  >b</a
		  ></code
		> method</p
	      ></div
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >class</span
	    > <a name="t:D" class="def"
	    >D</a
	    > a <span class="keyword"
	    >where</span
	    ></p
	  ><div class="doc"
	  ><p
	    >This is a class declaration with no separate docs for the methods</p
	    ></div
	  ><div class="subs methods"
	  ><p class="caption"
	    >Methods</p
	    ><p class="src"
	    ><a name="v:d" class="def"
	      >d</a
	      > ::  <a href=""
	      >T</a
	      > a b</p
	    ><p class="src"
	    ><a name="v:e" class="def"
	      >e</a
	      > :: (a, a)</p
	    ></div
	  ><div class="subs instances"
	  ><p id="control.i:D" class="caption collapser" onclick="toggleSection('i:D')"
	    >Instances</p
	    ><div id="section.i:D" class="show"
	    ><table
	      ><tr
		><td class="src"
		  ><a href=""
		    >D</a
		    > <a href=""
		    >Float</a
		    ></td
		  ><td class="doc empty"
		  >&nbsp;</td
		  ></tr
		><tr
		><td class="src"
		  ><a href=""
		    >D</a
		    > <a href=""
		    >Int</a
		    ></td
		  ><td class="doc empty"
		  >&nbsp;</td
		  ></tr
		></table
	      ></div
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >class</span
	    > <a name="t:E" class="def"
	    >E</a
	    > a</p
	  ><div class="doc"
	  ><p
	    >This is a class declaration with no methods (or no methods exported)</p
	    ></div
	  ><div class="subs minimal"
	  ><p class="caption"
	    >Minimal complete definition</p
	    ><p class="src"
	    >ee</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >class</span
	    > <a name="t:F" class="def"
	    >F</a
	    > a <span class="keyword"
	    >where</span
	    ></p
	  ><div class="subs methods"
	  ><p class="caption"
	    >Methods</p
	    ><p class="src"
	    ><a name="v:ff" class="def"
	      >ff</a
	      > :: a</p
	    ></div
	  ></div
	><div class="doc"
	><p
	  >Test that we can export a class method on its own:</p
	  ></div
	><h1 id="g:5"
	>Function types</h1
	><div class="top"
	><p class="src"
	  ><a name="v:f" class="def"
	    >f</a
	    > :: <a href=""
	    >C</a
	    > a =&gt; a -&gt; <a href=""
	    >Int</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=""
		>T</a
		></code
	      >, and we can refer to modules by
using double quotes: <a href=""
	      >Foo</a
	      >.  We can add emphasis <em
	      >like this</em
	      >.</p
	    ><ul
	    ><li
	      >This is a bulleted list</li
	      ><li
	      >This is the next item (different kind of bullet)</li
	      ></ul
	    ><ol
	    ><li
	      >This is an ordered list</li
	      ><li
	      >This is the next item (different kind of bullet)</li
	      ></ol
	    ><dl
	    ><dt
	      >cat</dt
	      ><dd
	      >a small, furry, domesticated mammal</dd
	      ><dt
	      >pineapple</dt
	      ><dd
	      >a fruit grown in the tropics</dd
	      ></dl
	    ><pre
	    >     This is a block of code, which can include other markup: <code
	      ><a href=""
		>R</a
		></code
	      >
     formatting
               is
                 significant
</pre
	    ><pre
	    >this is another block of code</pre
	    ><p
	    >We can also include URLs in documentation: <a href=""
	      >http://www.haskell.org/</a
	      >.</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:g" class="def"
	    >g</a
	    > :: <a href=""
	    >Int</a
	    > -&gt; <a href=""
	    >IO</a
	    > CInt</p
	  ><div class="doc"
	  ><p
	    >we can export foreign declarations too</p
	    ></div
	  ></div
	><h1 id="g:6"
	>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
	  ></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"
	><p
	  >a nested, named doc comment</p
	  ><p
	  >with a paragraph,</p
	  ><pre
	  > and a code block</pre
	  ></div
	><div class="doc"
	><pre
	  >test
test1</pre
	  ><pre
	  > test2
  test3
</pre
	  ></div
	><div class="doc"
	><pre
	  >test1
test2
</pre
	  ></div
	><div class="doc"
	><pre
	  >test3
test4</pre
	  ></div
	><div class="doc"
	><pre
	  >test1
test2
</pre
	  ><pre
	  >test3
test4</pre
	  ></div
	><div class="doc"
	><pre
	  >test3
test4</pre
	  ><pre
	  >test1
test2
</pre
	  ></div
	><div class="doc"
	><p
	  >aux11:</p
	  ><pre
	  >test3
test4</pre
	  ><pre
	  >test1
test2
</pre
	  ></div
	><div class="doc"
	><pre
	  >foo</pre
	  ><pre
	  >bar</pre
	  ></div
	><div class="doc"
	><p
	  >This is some inline documentation in the export list</p
	  ><pre
	  >a code block using bird-tracks
each line must begin with &gt; (which isn't significant unless it
is at the beginning of the line).</pre
	  ></div
	><h1 id="g:7"
	>A hidden module</h1
	><div class="top"
	><p class="src"
	  ><a name="v:hidden" class="def"
	    >hidden</a
	    > :: <a href=""
	    >Int</a
	    > -&gt; <a href=""
	    >Int</a
	    ></p
	  ></div
	><h1 id="g:8"
	>A visible module</h1
	><div class="top"
	><p class="src"
	  >module <a href=""
	    >Visible</a
	    ></p
	  ></div
	><div class="doc"
	><p
	  >nested-style doc comments </p
	  ></div
	><h1 id="g:9"
	>Existential / Universal types</h1
	><div class="top"
	><p class="src"
	  ><span class="keyword"
	    >data</span
	    > <a name="t:Ex" class="def"
	    >Ex</a
	    > a</p
	  ><div class="doc"
	  ><p
	    >A data-type using existential/universal types</p
	    ></div
	  ><div class="subs constructors"
	  ><p class="caption"
	    >Constructors</p
	    ><table
	    ><tr
	      ><td class="src"
		><span class="keyword"
		  >forall</span
		  > b . <a href=""
		  >C</a
		  > b =&gt; <a name="v:Ex1" class="def"
		  >Ex1</a
		  > b</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		><span class="keyword"
		  >forall</span
		  > b . <a name="v:Ex2" class="def"
		  >Ex2</a
		  > b</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		><span class="keyword"
		  >forall</span
		  > b . <a href=""
		  >C</a
		  > a =&gt; <a name="v:Ex3" class="def"
		  >Ex3</a
		  > b</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		><a name="v:Ex4" class="def"
		  >Ex4</a
		  > (<span class="keyword"
		  >forall</span
		  > a. a -&gt; a)</td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ></table
	    ></div
	  ></div
	><h1 id="g:10"
	>Type signatures with argument docs</h1
	><div class="top"
	><p class="src"
	  ><a name="v:k" class="def"
	    >k</a
	    ></p
	  ><div class="subs arguments"
	  ><p class="caption"
	    >Arguments</p
	    ><table
	    ><tr
	      ><td class="src"
		>:: <a href=""
		  >T</a
		  > () ()</td
		><td class="doc"
		><p
		  >This argument has type <code
		    ><a href=""
		      >T</a
		      ></code
		    ></p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >T2</a
		  > <a href=""
		  >Int</a
		  > <a href=""
		  >Int</a
		  ></td
		><td class="doc"
		><p
		  >This argument has type 'T2 Int Int'</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; (<a href=""
		  >T3</a
		  > <a href=""
		  >Bool</a
		  > <a href=""
		  >Bool</a
		  > -&gt; <a href=""
		  >T4</a
		  > <a href=""
		  >Float</a
		  > <a href=""
		  >Float</a
		  >)</td
		><td class="doc"
		><p
		  >This argument has type <code
		    >T3 Bool Bool -&gt; T4 Float Float</code
		    ></p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >T5</a
		  > () ()</td
		><td class="doc"
		><p
		  >This argument has a very long description that should
 hopefully cause some wrapping to happen when it is finally
 rendered by Haddock in the generated HTML page.</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >IO</a
		  > ()</td
		><td class="doc"
		><p
		  >This is the result type</p
		  ></td
		></tr
	      ></table
	    ></div
	  ><div class="doc"
	  ><p
	    >This is a function with documentation for each argument</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:l" class="def"
	    >l</a
	    ></p
	  ><div class="subs arguments"
	  ><p class="caption"
	    >Arguments</p
	    ><table
	    ><tr
	      ><td class="src"
		>:: (<a href=""
		  >Int</a
		  >, <a href=""
		  >Int</a
		  >, <a href=""
		  >Float</a
		  >)</td
		><td class="doc"
		><p
		  >takes a triple</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >Int</a
		  ></td
		><td class="doc"
		><p
		  >returns an <code
		    ><a href=""
		      >Int</a
		      ></code
		    ></p
		  ></td
		></tr
	      ></table
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:m" class="def"
	    >m</a
	    ></p
	  ><div class="subs arguments"
	  ><p class="caption"
	    >Arguments</p
	    ><table
	    ><tr
	      ><td class="src"
		>:: <a href=""
		  >R</a
		  ></td
		><td class="doc empty"
		>&nbsp;</td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >N1</a
		  > ()</td
		><td class="doc"
		><p
		  >one of the arguments</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >IO</a
		  > <a href=""
		  >Int</a
		  ></td
		><td class="doc"
		><p
		  >and the return value</p
		  ></td
		></tr
	      ></table
	    ></div
	  ><div class="doc"
	  ><p
	    >This function has some arg docs</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:o" class="def"
	    >o</a
	    ></p
	  ><div class="subs arguments"
	  ><p class="caption"
	    >Arguments</p
	    ><table
	    ><tr
	      ><td class="src"
		>:: <a href=""
		  >Float</a
		  ></td
		><td class="doc"
		><p
		  >The input float</p
		  ></td
		></tr
	      ><tr
	      ><td class="src"
		>-&gt; <a href=""
		  >IO</a
		  > <a href=""
		  >Float</a
		  ></td
		><td class="doc"
		><p
		  >The output float</p
		  ></td
		></tr
	      ></table
	    ></div
	  ><div class="doc"
	  ><p
	    >A foreign import with argument docs</p
	    ></div
	  ></div
	><h1 id="g:11"
	>A section</h1
	><h2 id="g:12"
	>A subsection</h2
	><div class="doc"
	><pre
	  >a literal line</pre
	  ><p
	  >$ a non <em
	    >literal</em
	    > line $</p
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:f-39-" class="def"
	    >f'</a
	    > :: <a href=""
	    >Int</a
	    ></p
	  ><div class="doc"
	  ><p
	    >a function with a prime can be referred to as <code
	      ><a href=""
		>f'</a
		></code
	      >
 but f' doesn't get link'd 'f\''</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:withType" class="def"
	    >withType</a
	    > :: <a href=""
	    >Int</a
	    ></p
	  ><div class="doc"
	  ><p
	    >Comment on a definition with type signature</p
	    ></div
	  ></div
	><div class="top"
	><p class="src"
	  ><a name="v:withoutType" class="def"
	    >withoutType</a
	    > ::  t</p
	  ><div class="doc"
	  ><p
	    >Comment on a definition without type signature</p
	    ></div
	  ></div
	></div
      ></div
    ><div id="footer"
    ><p
      >Produced by <a href=""
	>Haddock</a
	> version 2.15.0</p
      ></div
    ></body
  ></html
>