diff options
Diffstat (limited to 'tests/golden-tests')
30 files changed, 5262 insertions, 279 deletions
diff --git a/tests/golden-tests/runtests.hs b/tests/golden-tests/runtests.hs index 16524197..05bc28c5 100644 --- a/tests/golden-tests/runtests.hs +++ b/tests/golden-tests/runtests.hs @@ -63,7 +63,7 @@ test = do    putStrLn "Running tests..."    handle <- runProcess haddockPath -                       (["-w", "-o", outdir, "-h", "--optghc=-fglasgow-exts" +                       (["-w", "-o", outdir, "-h", "--pretty-html", "--optghc=-fglasgow-exts"                          , "--optghc=-w", base, process, ghcprim] ++ opts ++ mods')                         Nothing (Just [("haddock_datadir", haddockBase)]) Nothing                         Nothing Nothing diff --git a/tests/golden-tests/tests/A.html.ref b/tests/golden-tests/tests/A.html.ref index 495b264b..8f0e3765 100644 --- a/tests/golden-tests/tests/A.html.ref +++ b/tests/golden-tests/tests/A.html.ref @@ -1,4 +1,68 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_A.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">A</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:A" class="def">A</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:A" class="def">A</a></td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>A</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:A" class="def" +	    >A</a +	    >  </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:A" class="def" +		  >A</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/B.html.ref b/tests/golden-tests/tests/B.html.ref index c1bcfe23..abb08d45 100644 --- a/tests/golden-tests/tests/B.html.ref +++ b/tests/golden-tests/tests/B.html.ref @@ -1,4 +1,51 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_B.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">B</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src">module <A HREF="">A</a></p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>B</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  >module <A HREF="">A</a +	    ></p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug1.html.ref b/tests/golden-tests/tests/Bug1.html.ref index 3ea9f6ff..bc778d38 100644 --- a/tests/golden-tests/tests/Bug1.html.ref +++ b/tests/golden-tests/tests/Bug1.html.ref @@ -1,6 +1,89 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug1.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug1</p></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 HREF="">T</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:T" class="def">T</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="">T</a></code>. -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:T" class="def">T</a></td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug1</p +	></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 HREF="">T</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:T" class="def" +	    >T</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="">T</a +		></code +	      >. +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:T" class="def" +		  >T</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug2.html.ref b/tests/golden-tests/tests/Bug2.html.ref index 09b01947..ed81755d 100644 --- a/tests/golden-tests/tests/Bug2.html.ref +++ b/tests/golden-tests/tests/Bug2.html.ref @@ -1,4 +1,53 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug2.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug2</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:x" class="def">x</a> :: <A HREF="">A</a></p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug2</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:x" class="def" +	    >x</a +	    > :: <A HREF="">A</a +	    ></p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug3.html.ref b/tests/golden-tests/tests/Bug3.html.ref index 4edfe76e..b231c443 100644 --- a/tests/golden-tests/tests/Bug3.html.ref +++ b/tests/golden-tests/tests/Bug3.html.ref @@ -1,6 +1,69 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug3.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug3</p></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="">foo</a> :: <A HREF="">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:foo" class="def">foo</a> :: <A HREF="">Int</a></p><div class="doc"><p>/multi-line +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug3</p +	></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="">foo</a +	    > :: <A HREF="">Int</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:foo" class="def" +	    >foo</a +	    > :: <A HREF="">Int</a +	    ></p +	  ><div class="doc" +	  ><p +	    >/multi-line   emphasis/ -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug4.html.ref b/tests/golden-tests/tests/Bug4.html.ref index 76b0e84f..776a0ab6 100644 --- a/tests/golden-tests/tests/Bug4.html.ref +++ b/tests/golden-tests/tests/Bug4.html.ref @@ -1,5 +1,68 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug4.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug4</p></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="">foo</a> :: <A HREF="">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:foo" class="def">foo</a> :: <A HREF="">Int</a></p><div class="doc"><p>don't use apostrophe's in the wrong place's -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug4</p +	></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="">foo</a +	    > :: <A HREF="">Int</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:foo" class="def" +	    >foo</a +	    > :: <A HREF="">Int</a +	    ></p +	  ><div class="doc" +	  ><p +	    >don't use apostrophe's in the wrong place's +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug6.html.ref b/tests/golden-tests/tests/Bug6.html.ref index 6bc8ca26..c6ee6452 100644 --- a/tests/golden-tests/tests/Bug6.html.ref +++ b/tests/golden-tests/tests/Bug6.html.ref @@ -1,12 +1,297 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug6.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug6</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Exporting records. -</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="">A</a>  = <A HREF="">A</a> <A HREF="">Int</a></li><li class="src short"><span class="keyword">data</span>  <A HREF="">B</a>  = <A HREF="">B</a> {<ul class="subs"><li><A HREF="">b</a> :: <A HREF="">Int</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <A HREF="">C</a>  = <A HREF="">C</a> {<ul class="subs"><li><A HREF="">c1</a> :: <A HREF="">Int</a></li><li><A HREF="">c2</a> :: <A HREF="">Int</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <A HREF="">D</a>  = <A HREF="">D</a> <A HREF="">Int</a> <A HREF="">Int</a></li><li class="src short"><span class="keyword">newtype</span>  <A HREF="">E</a>  = <A HREF="">E</a> <A HREF="">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:A" class="def">A</a>  </p><div class="doc"><p>This record is exported without its field -</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></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:B" class="def">B</a>  </p><div class="doc"><p>.. with its field, but the field is named separately in the export list +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug6</p +	></div +      ><div id="description" +      ><p class="caption" +	>Description</p +	><div class="doc" +	><p +	  >Exporting records. +</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="">A</a +	    >  = <A HREF="">A</a +	    > <A HREF="">Int</a +	    ></li +	  ><li class="src short" +	  ><span class="keyword" +	    >data</span +	    >  <A HREF="">B</a +	    >  = <A HREF="">B</a +	    > {<ul class="subs" +	    ><li +	      ><A HREF="">b</a +		> :: <A HREF="">Int</a +		></li +	      ></ul +	    >}</li +	  ><li class="src short" +	  ><span class="keyword" +	    >data</span +	    >  <A HREF="">C</a +	    >  = <A HREF="">C</a +	    > {<ul class="subs" +	    ><li +	      ><A HREF="">c1</a +		> :: <A HREF="">Int</a +		></li +	      ><li +	      ><A HREF="">c2</a +		> :: <A HREF="">Int</a +		></li +	      ></ul +	    >}</li +	  ><li class="src short" +	  ><span class="keyword" +	    >data</span +	    >  <A HREF="">D</a +	    >  = <A HREF="">D</a +	    > <A HREF="">Int</a +	    > <A HREF="">Int</a +	    ></li +	  ><li class="src short" +	  ><span class="keyword" +	    >newtype</span +	    >  <A HREF="">E</a +	    >  = <A HREF="">E</a +	    > <A HREF="">Int</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:A" class="def" +	    >A</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >This record is exported without its field +</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 +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:B" class="def" +	    >B</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >.. with its field, but the field is named separately in the export list   (the field isn't documented separately since it is already documented here) -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:B" class="def">B</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:b" class="def">b</a> :: <A HREF="">Int</a></dt><dd class="doc empty"> </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:C" class="def">C</a>  </p><div class="doc"><p>.. with fields names as subordinate names in the export -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:C" class="def">C</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:c1" class="def">c1</a> :: <A HREF="">Int</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:c2" class="def">c2</a> :: <A HREF="">Int</a></dt><dd class="doc empty"> </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:D" class="def">D</a>  </p><div class="doc"><p>.. with only some of the fields exported (we can't handle this one - +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:B" class="def" +		  >B</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:b" class="def" +			>b</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc empty" +		      > </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:C" class="def" +	    >C</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >.. with fields names as subordinate names in the export +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:C" class="def" +		  >C</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:c1" class="def" +			>c1</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc empty" +		      > </dd +		      ><dt class="src" +		      ><a name="v:c2" class="def" +			>c2</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc empty" +		      > </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:D" class="def" +	    >D</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >.. with only some of the fields exported (we can't handle this one -   how do we render the declaration?) -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:D" class="def">D</a> <A HREF="">Int</a> <A HREF="">Int</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:E" class="def">E</a>  </p><div class="doc"><p>a newtype with a field -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:E" class="def">E</a> <A HREF="">Int</a></td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:D" class="def" +		  >D</a +		  > <A HREF="">Int</a +		  > <A HREF="">Int</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >newtype</span +	    >  <a name="t:E" class="def" +	    >E</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >a newtype with a field +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:E" class="def" +		  >E</a +		  > <A HREF="">Int</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug7.html.ref b/tests/golden-tests/tests/Bug7.html.ref index 6c29ce13..eea2095d 100644 --- a/tests/golden-tests/tests/Bug7.html.ref +++ b/tests/golden-tests/tests/Bug7.html.ref @@ -1,10 +1,153 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug7.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug7</p></div><div id="description"><p class="caption">Description</p><div class="doc"><p>This module caused a duplicate instance in the documentation for the Foo +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug7</p +	></div +      ><div id="description" +      ><p class="caption" +	>Description</p +	><div class="doc" +	><p +	  >This module caused a duplicate instance in the documentation for the Foo   type. -</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="">Foo</a>  = <A HREF="">Foo</a></li><li class="src short"><span class="keyword">class</span>  <A HREF="">Bar</a> x y </li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Foo" class="def">Foo</a>  </p><div class="doc"><p>The Foo datatype -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Foo" class="def">Foo</a></td><td class="doc empty"> </td></tr></table></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"><A HREF="">Bar</a> <A HREF="">Foo</a> <A HREF="">Foo</a></td><td class="doc"><p>Just one instance -</p></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Bar" class="def">Bar</a> x y </p><div class="doc"><p>The Bar class -</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"><A HREF="">Bar</a> <A HREF="">Foo</a> <A HREF="">Foo</a></td><td class="doc"><p>Just one instance -</p></td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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="">Foo</a +	    >  = <A HREF="">Foo</a +	    ></li +	  ><li class="src short" +	  ><span class="keyword" +	    >class</span +	    >  <A HREF="">Bar</a +	    > x y </li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:Foo" class="def" +	    >Foo</a +	    >  </p +	  ><div class="doc" +	  ><p +	    >The Foo datatype +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:Foo" class="def" +		  >Foo</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></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" +		  ><A HREF="">Bar</a +		    > <A HREF="">Foo</a +		    > <A HREF="">Foo</a +		    ></td +		  ><td class="doc" +		  ><p +		    >Just one instance +</p +		    ></td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >class</span +	    >  <a name="t:Bar" class="def" +	    >Bar</a +	    > x y </p +	  ><div class="doc" +	  ><p +	    >The Bar class +</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" +		  ><A HREF="">Bar</a +		    > <A HREF="">Foo</a +		    > <A HREF="">Foo</a +		    ></td +		  ><td class="doc" +		  ><p +		    >Just one instance +</p +		    ></td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bug8.html.ref b/tests/golden-tests/tests/Bug8.html.ref index bd2dc3d1..e8ea727c 100644 --- a/tests/golden-tests/tests/Bug8.html.ref +++ b/tests/golden-tests/tests/Bug8.html.ref @@ -1,4 +1,80 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bug8.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bug8</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Typ" class="def">Typ</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Type" class="def">Type</a> (<A HREF="">String</a>, [<A HREF="">Typ</a>])</td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:TFree" class="def">TFree</a> (<A HREF="">String</a>, [<A HREF="">String</a>])</td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bug8</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:Typ" class="def" +	    >Typ</a +	    >  </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:Type" class="def" +		  >Type</a +		  > (<A HREF="">String</a +		  >, [<A HREF="">Typ</a +		  >])</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:TFree" class="def" +		  >TFree</a +		  > (<A HREF="">String</a +		  >, [<A HREF="">String</a +		  >])</td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Bugs.html.ref b/tests/golden-tests/tests/Bugs.html.ref index 6595502a..5828a6fa 100644 --- a/tests/golden-tests/tests/Bugs.html.ref +++ b/tests/golden-tests/tests/Bugs.html.ref @@ -1,4 +1,69 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Bugs.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Bugs</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:A" class="def">A</a> a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:A" class="def">A</a> a (a -> <A HREF="">Int</a>)</td><td class="doc empty"> </td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Bugs</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:A" class="def" +	    >A</a +	    > a </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:A" class="def" +		  >A</a +		  > a (a -> <A HREF="">Int</a +		  >)</td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/CrossPackageDocs.html.ref b/tests/golden-tests/tests/CrossPackageDocs.html.ref index a3c5a424..fd16c958 100644 --- a/tests/golden-tests/tests/CrossPackageDocs.html.ref +++ b/tests/golden-tests/tests/CrossPackageDocs.html.ref @@ -1,43 +1,391 @@ -<!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>CrossPackageDocs</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[ +<!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 +    >CrossPackageDocs</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_CrossPackageDocs.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">CrossPackageDocs</p></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="">map</a> ::  (a -> b) -> [a] -> [b]</li><li class="src short"><span class="keyword">class</span>  <A HREF="">Monad</a> m  <span class="keyword">where</span><ul class="subs"><li><A HREF="">(>>=)</a> ::  m a -> (a -> m b) -> m b</li><li><A HREF="">(>>)</a> ::  m a -> m b -> m b</li><li><A HREF="">return</a> ::  a -> m a</li><li><A HREF="">fail</a> ::  <A HREF="">String</a> -> m a</li></ul></li><li class="src short"><A HREF="">runInteractiveProcess</a> :: <A HREF="">FilePath</a> -> [<A HREF="">String</a>] -> <A HREF="">Maybe</a> <A HREF="">FilePath</a> -> <A HREF="">Maybe</a> [(<A HREF="">String</a>, <A HREF="">String</a>)] -> <A HREF="">IO</a> (<A HREF="">Handle</a>, <A HREF="">Handle</a>, <A HREF="">Handle</a>, <A HREF="">ProcessHandle</a>)</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:map" class="def">map</a> ::  (a -> b) -> [a] -> [b]</p><div class="doc"><p><code><A HREF="">map</a></code> <code>f xs</code> is the list obtained by applying <code>f</code> to each element - of <code>xs</code>, i.e., -</p><pre> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn] +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>CrossPackageDocs</p +	></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="">map</a +	    > ::  (a -> b) -> [a] -> [b]</li +	  ><li class="src short" +	  ><span class="keyword" +	    >class</span +	    >  <A HREF="">Monad</a +	    > m  <span class="keyword" +	    >where</span +	    ><ul class="subs" +	    ><li +	      ><A HREF="">(>>=)</a +		> ::  m a -> (a -> m b) -> m b</li +	      ><li +	      ><A HREF="">(>>)</a +		> ::  m a -> m b -> m b</li +	      ><li +	      ><A HREF="">return</a +		> ::  a -> m a</li +	      ><li +	      ><A HREF="">fail</a +		> ::  <A HREF="">String</a +		> -> m a</li +	      ></ul +	    ></li +	  ><li class="src short" +	  ><A HREF="">runInteractiveProcess</a +	    > :: <A HREF="">FilePath</a +	    > -> [<A HREF="">String</a +	    >] -> <A HREF="">Maybe</a +	    > <A HREF="">FilePath</a +	    > -> <A HREF="">Maybe</a +	    > [(<A HREF="">String</a +	    >, <A HREF="">String</a +	    >)] -> <A HREF="">IO</a +	    > (<A HREF="">Handle</a +	    >, <A HREF="">Handle</a +	    >, <A HREF="">Handle</a +	    >, <A HREF="">ProcessHandle</a +	    >)</li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:map" class="def" +	    >map</a +	    > ::  (a -> b) -> [a] -> [b]</p +	  ><div class="doc" +	  ><p +	    ><code +	      ><A HREF="">map</a +		></code +	      > <code +	      >f xs</code +	      > is the list obtained by applying <code +	      >f</code +	      > to each element + of <code +	      >xs</code +	      >, i.e., +</p +	    ><pre +	    > map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]   map f [x1, x2, ...] == [f x1, f x2, ...] -</pre></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Monad" class="def">Monad</a> m  <span class="keyword">where</span></p><div class="doc"><p>The <code><A HREF="">Monad</a></code> class defines the basic operations over a <em>monad</em>, -a concept from a branch of mathematics known as <em>category theory</em>. +</pre +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >class</span +	    >  <a name="t:Monad" class="def" +	    >Monad</a +	    > m  <span class="keyword" +	    >where</span +	    ></p +	  ><div class="doc" +	  ><p +	    >The <code +	      ><A HREF="">Monad</a +		></code +	      > class defines the basic operations over a <em +	      >monad</em +	      >, +a concept from a branch of mathematics known as <em +	      >category theory</em +	      >.  From the perspective of a Haskell programmer, however, it is best to -think of a monad as an <em>abstract datatype</em> of actions. -Haskell's <code>do</code> expressions provide a convenient syntax for writing +think of a monad as an <em +	      >abstract datatype</em +	      > of actions. +Haskell's <code +	      >do</code +	      > expressions provide a convenient syntax for writing  monadic expressions. -</p><p>Minimal complete definition: <code><A HREF="">>>=</a></code> and <code><A HREF="">return</a></code>. -</p><p>Instances of <code><A HREF="">Monad</a></code> should satisfy the following laws: -</p><pre> return a >>= k  ==  k a +</p +	    ><p +	    >Minimal complete definition: <code +	      ><A HREF="">>>=</a +		></code +	      > and <code +	      ><A HREF="">return</a +		></code +	      >. +</p +	    ><p +	    >Instances of <code +	      ><A HREF="">Monad</a +		></code +	      > should satisfy the following laws: +</p +	    ><pre +	    > return a >>= k  ==  k a   m >>= return  ==  m   m >>= (\x -> k x >>= h)  ==  (m >>= k) >>= h -</pre><p>Instances of both <code><A HREF="">Monad</a></code> and <code><A HREF="">Functor</a></code> should additionally satisfy the law: -</p><pre> fmap f xs  ==  xs >>= return . f -</pre><p>The instances of <code><A HREF="">Monad</a></code> for lists, <code>Data.Maybe.Maybe</code> and <code>System.IO.IO</code> -defined in the <A HREF="">Prelude</a> satisfy these laws. -</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:-62--62--61-" class="def">(>>=)</a> ::  m a -> (a -> m b) -> m b</p><div class="doc"><p>Sequentially compose two actions, passing any value produced +</pre +	    ><p +	    >Instances of both <code +	      ><A HREF="">Monad</a +		></code +	      > and <code +	      ><A HREF="">Functor</a +		></code +	      > should additionally satisfy the law: +</p +	    ><pre +	    > fmap f xs  ==  xs >>= return . f +</pre +	    ><p +	    >The instances of <code +	      ><A HREF="">Monad</a +		></code +	      > for lists, <code +	      >Data.Maybe.Maybe</code +	      > and <code +	      >System.IO.IO</code +	      > +defined in the <A HREF="">Prelude</a +	      > satisfy these laws. +</p +	    ></div +	  ><div class="subs methods" +	  ><p class="caption" +	    >Methods</p +	    ><p class="src" +	    ><a name="v:-62--62--61-" class="def" +	      >(>>=)</a +	      > ::  m a -> (a -> m b) -> m b</p +	    ><div class="doc" +	    ><p +	      >Sequentially compose two actions, passing any value produced   by the first as an argument to the second. -</p></div><p class="src"><a name="v:-62--62-" class="def">(>>)</a> ::  m a -> m b -> m b</p><div class="doc"><p>Sequentially compose two actions, discarding any value produced +</p +	      ></div +	    ><p class="src" +	    ><a name="v:-62--62-" class="def" +	      >(>>)</a +	      > ::  m a -> m b -> m b</p +	    ><div class="doc" +	    ><p +	      >Sequentially compose two actions, discarding any value produced   by the first, like sequencing operators (such as the semicolon)   in imperative languages. -</p></div><p class="src"><a name="v:return" class="def">return</a> ::  a -> m a</p><div class="doc"><p>Inject a value into the monadic type. -</p></div><p class="src"><a name="v:fail" class="def">fail</a> ::  <A HREF="">String</a> -> m a</p><div class="doc"><p>Fail with a message.  This operation is not part of the +</p +	      ></div +	    ><p class="src" +	    ><a name="v:return" class="def" +	      >return</a +	      > ::  a -> m a</p +	    ><div class="doc" +	    ><p +	      >Inject a value into the monadic type. +</p +	      ></div +	    ><p class="src" +	    ><a name="v:fail" class="def" +	      >fail</a +	      > ::  <A HREF="">String</a +	      > -> m a</p +	    ><div class="doc" +	    ><p +	      >Fail with a message.  This operation is not part of the   mathematical definition of a monad, but is invoked on pattern-match - failure in a <code>do</code> expression. -</p></div></div><div class="subs instances"><p id="control.i:Monad" class="caption collapser" onclick="toggleSection('i:Monad')">Instances</p><div id="section.i:Monad" class="show"><table><tr><td class="src"><A HREF="">Monad</a> []</td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Monad</a> <A HREF="">IO</a></td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Monad</a> Q</td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Monad</a> <A HREF="">Maybe</a></td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Monad</a> ((->) r)</td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Monad</a> (<A HREF="">Either</a> e)</td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runInteractiveProcess" class="def">runInteractiveProcess</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <A HREF="">FilePath</a></td><td class="doc"><p>Filename of the executable -</p></td></tr><tr><td class="src">-> [<A HREF="">String</a>]</td><td class="doc"><p>Arguments to pass to the executable -</p></td></tr><tr><td class="src">-> <A HREF="">Maybe</a> <A HREF="">FilePath</a></td><td class="doc"><p>Optional path to the working directory -</p></td></tr><tr><td class="src">-> <A HREF="">Maybe</a> [(<A HREF="">String</a>, <A HREF="">String</a>)]</td><td class="doc"><p>Optional environment (otherwise inherit) -</p></td></tr><tr><td class="src">-> <A HREF="">IO</a> (<A HREF="">Handle</a>, <A HREF="">Handle</a>, <A HREF="">Handle</a>, <A HREF="">ProcessHandle</a>)</td><td class="doc empty"> </td></tr></table></div><div class="doc"><p>Runs a raw command, and returns <code><A HREF="">Handle</a></code>s that may be used to communicate -     with the process via its <code>stdin</code>, <code>stdout</code> and <code>stderr</code> respectively. -</p><p>For example, to start a process and feed a string to its stdin: -</p><pre>   (inp,out,err,pid) <- runInteractiveProcess "..." + failure in a <code +		>do</code +		> expression. +</p +	      ></div +	    ></div +	  ><div class="subs instances" +	  ><p id="control.i:Monad" class="caption collapser" onclick="toggleSection('i:Monad')" +	    >Instances</p +	    ><div id="section.i:Monad" class="show" +	    ><table +	      ><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > []</td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > <A HREF="">IO</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > Q</td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > <A HREF="">Maybe</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > ((->) r)</td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Monad</a +		    > (<A HREF="">Either</a +		    > e)</td +		  ><td class="doc empty" +		  > </td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:runInteractiveProcess" class="def" +	    >runInteractiveProcess</a +	    ></p +	  ><div class="subs arguments" +	  ><p class="caption" +	    >Arguments</p +	    ><table +	    ><tr +	      ><td class="src" +		>:: <A HREF="">FilePath</a +		  ></td +		><td class="doc" +		><p +		  >Filename of the executable +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> [<A HREF="">String</a +		  >]</td +		><td class="doc" +		><p +		  >Arguments to pass to the executable +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">Maybe</a +		  > <A HREF="">FilePath</a +		  ></td +		><td class="doc" +		><p +		  >Optional path to the working directory +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">Maybe</a +		  > [(<A HREF="">String</a +		  >, <A HREF="">String</a +		  >)]</td +		><td class="doc" +		><p +		  >Optional environment (otherwise inherit) +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">IO</a +		  > (<A HREF="">Handle</a +		  >, <A HREF="">Handle</a +		  >, <A HREF="">Handle</a +		  >, <A HREF="">ProcessHandle</a +		  >)</td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ><div class="doc" +	  ><p +	    >Runs a raw command, and returns <code +	      ><A HREF="">Handle</a +		></code +	      >s that may be used to communicate +     with the process via its <code +	      >stdin</code +	      >, <code +	      >stdout</code +	      > and <code +	      >stderr</code +	      > respectively. +</p +	    ><p +	    >For example, to start a process and feed a string to its stdin: +</p +	    ><pre +	    >   (inp,out,err,pid) <- runInteractiveProcess "..."     forkIO (hPutStr inp str) -</pre><p>The <code><A HREF="">Handle</a></code>s are initially in binary mode; if you need them to be -    in text mode then use <code><A HREF="">hSetBinaryMode</a></code>. -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</pre +	    ><p +	    >The <code +	      ><A HREF="">Handle</a +		></code +	      >s are initially in binary mode; if you need them to be +    in text mode then use <code +	      ><A HREF="">hSetBinaryMode</a +		></code +	      >. +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Examples.html.ref b/tests/golden-tests/tests/Examples.html.ref index a8f63e3e..49383b7a 100644 --- a/tests/golden-tests/tests/Examples.html.ref +++ b/tests/golden-tests/tests/Examples.html.ref @@ -1,22 +1,150 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Examples.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Examples</p></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="">fib</a> :: <A HREF="">Integer</a> -> <A HREF="">Integer</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:fib" class="def">fib</a> :: <A HREF="">Integer</a> -> <A HREF="">Integer</a></p><div class="doc"><p>Fibonacci number of given <code><A HREF="">Integer</a></code>. -</p><p>Examples: -</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>fib 5 -</code></strong>5 -<code class="prompt">>>> </code><strong class="userinput"><code>fib 10 -</code></strong>55 -</pre><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>fib 10 -</code></strong>55 -</pre><p>One more Example: -</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>fib 5 -</code></strong>5 -</pre><p>One more Example: -</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>fib 5 -</code></strong>5 -</pre><p>Example with an import: -</p><pre class="screen"><code class="prompt">>>> </code><strong class="userinput"><code>import Data.Char -</code></strong><code class="prompt">>>> </code><strong class="userinput"><code>isSpace 'a' -</code></strong>False -</pre></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Examples</p +	></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="">fib</a +	    > :: <A HREF="">Integer</a +	    > -> <A HREF="">Integer</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:fib" class="def" +	    >fib</a +	    > :: <A HREF="">Integer</a +	    > -> <A HREF="">Integer</a +	    ></p +	  ><div class="doc" +	  ><p +	    >Fibonacci number of given <code +	      ><A HREF="">Integer</a +		></code +	      >. +</p +	    ><p +	    >Examples: +</p +	    ><pre class="screen" +	    ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>fib 5 +</code +		></strong +	      >5 +<code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>fib 10 +</code +		></strong +	      >55 +</pre +	    ><pre class="screen" +	    ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>fib 10 +</code +		></strong +	      >55 +</pre +	    ><p +	    >One more Example: +</p +	    ><pre class="screen" +	    ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>fib 5 +</code +		></strong +	      >5 +</pre +	    ><p +	    >One more Example: +</p +	    ><pre class="screen" +	    ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>fib 5 +</code +		></strong +	      >5 +</pre +	    ><p +	    >Example with an import: +</p +	    ><pre class="screen" +	    ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>import Data.Char +</code +		></strong +	      ><code class="prompt" +	      >>>> </code +	      ><strong class="userinput" +	      ><code +		>isSpace 'a' +</code +		></strong +	      >False +</pre +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/FunArgs.html.ref b/tests/golden-tests/tests/FunArgs.html.ref index 1491b267..392ffca8 100644 --- a/tests/golden-tests/tests/FunArgs.html.ref +++ b/tests/golden-tests/tests/FunArgs.html.ref @@ -1,13 +1,163 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_FunArgs.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">FunArgs</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:f" class="def">f</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <span class="keyword">forall</span> a . <A HREF="">Ord</a> a</td><td class="doc empty"> </td></tr><tr><td class="src">=> <A HREF="">Int</a></td><td class="doc"><p>First argument -</p></td></tr><tr><td class="src">-> a</td><td class="doc"><p>Second argument -</p></td></tr><tr><td class="src">-> <A HREF="">Bool</a></td><td class="doc"><p>Third argument -</p></td></tr><tr><td class="src">-> (a -> a)</td><td class="doc"><p>Fourth argument -</p></td></tr><tr><td class="src">-> <A HREF="">()</a></td><td class="doc"><p>Result -</p></td></tr></table></div></div><div class="top"><p class="src"><a name="v:g" class="def">g</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: a</td><td class="doc"><p>First argument -</p></td></tr><tr><td class="src">-> b</td><td class="doc"><p>Second argument -</p></td></tr><tr><td class="src">-> c</td><td class="doc"><p>Third argument -</p></td></tr><tr><td class="src">-> d</td><td class="doc"><p>Result -</p></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>FunArgs</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:f" class="def" +	    >f</a +	    ></p +	  ><div class="subs arguments" +	  ><p class="caption" +	    >Arguments</p +	    ><table +	    ><tr +	      ><td class="src" +		>:: <span class="keyword" +		  >forall</span +		  > a . <A HREF="">Ord</a +		  > a</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		>=> <A HREF="">Int</a +		  ></td +		><td class="doc" +		><p +		  >First argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> a</td +		><td class="doc" +		><p +		  >Second argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">Bool</a +		  ></td +		><td class="doc" +		><p +		  >Third argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> (a -> a)</td +		><td class="doc" +		><p +		  >Fourth argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">()</a +		  ></td +		><td class="doc" +		><p +		  >Result +</p +		  ></td +		></tr +	      ></table +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:g" class="def" +	    >g</a +	    ></p +	  ><div class="subs arguments" +	  ><p class="caption" +	    >Arguments</p +	    ><table +	    ><tr +	      ><td class="src" +		>:: a</td +		><td class="doc" +		><p +		  >First argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> b</td +		><td class="doc" +		><p +		  >Second argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> c</td +		><td class="doc" +		><p +		  >Third argument +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> d</td +		><td class="doc" +		><p +		  >Result +</p +		  ></td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/GADTRecords.html.ref b/tests/golden-tests/tests/GADTRecords.html.ref index f4d5593b..fe80fae2 100644 --- a/tests/golden-tests/tests/GADTRecords.html.ref +++ b/tests/golden-tests/tests/GADTRecords.html.ref @@ -1,7 +1,197 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_GADTRecords.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">GADTRecords</p></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="">H1</a> a b <span class="keyword">where</span><ul class="subs"><li><A HREF="">C1</a> ::  <A HREF="">H1</a> a b  </li><li><A HREF="">C2</a> :: <A HREF="">Ord</a> a => [a] -> <A HREF="">H1</a> a a  </li><li><A HREF="">C3</a> ::  { <ul class="subs"><li><A HREF="">field</a> :: <A HREF="">Int</a></li></ul> } -> <A HREF="">H1</a> <A HREF="">Int</a> <A HREF="">Int</a></li><li><A HREF="">C4</a> ::  { <ul class="subs"><li><A HREF="">field2</a> :: a</li></ul> } -> <A HREF="">H1</a> <A HREF="">Int</a> a</li></ul></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:H1" class="def">H1</a> a b <span class="keyword">where</span></p><div class="doc"><p>h1 -</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:C1" class="def">C1</a> ::  <A HREF="">H1</a> a b</td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:C2" class="def">C2</a> :: <A HREF="">Ord</a> a => [a] -> <A HREF="">H1</a> a a</td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:C3" class="def">C3</a> ::  <A HREF="">Int</a> -> <A HREF="">H1</a> <A HREF="">Int</a> <A HREF="">Int</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:field" class="def">field</a> :: <A HREF="">Int</a></dt><dd class="doc"><p>hello docs -</p></dd></dl><div class="clear"></div></div></td></tr><tr><td class="src"><a name="v:C4" class="def">C4</a> ::  a -> <A HREF="">H1</a> <A HREF="">Int</a> a</td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:field2" class="def">field2</a> :: a</dt><dd class="doc"><p>hello2 docs -</p></dd></dl><div class="clear"></div></div></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>GADTRecords</p +	></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="">H1</a +	    > a b <span class="keyword" +	    >where</span +	    ><ul class="subs" +	    ><li +	      ><A HREF="">C1</a +		> ::  <A HREF="">H1</a +		> a b  </li +	      ><li +	      ><A HREF="">C2</a +		> :: <A HREF="">Ord</a +		> a => [a] -> <A HREF="">H1</a +		> a a  </li +	      ><li +	      ><A HREF="">C3</a +		> ::  { <ul class="subs" +		><li +		  ><A HREF="">field</a +		    > :: <A HREF="">Int</a +		    ></li +		  ></ul +		> } -> <A HREF="">H1</a +		> <A HREF="">Int</a +		> <A HREF="">Int</a +		></li +	      ><li +	      ><A HREF="">C4</a +		> ::  { <ul class="subs" +		><li +		  ><A HREF="">field2</a +		    > :: a</li +		  ></ul +		> } -> <A HREF="">H1</a +		> <A HREF="">Int</a +		> a</li +	      ></ul +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:H1" class="def" +	    >H1</a +	    > a b <span class="keyword" +	    >where</span +	    ></p +	  ><div class="doc" +	  ><p +	    >h1 +</p +	    ></div +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:C1" class="def" +		  >C1</a +		  > ::  <A HREF="">H1</a +		  > a b</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:C2" class="def" +		  >C2</a +		  > :: <A HREF="">Ord</a +		  > a => [a] -> <A HREF="">H1</a +		  > a a</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:C3" class="def" +		  >C3</a +		  > ::  <A HREF="">Int</a +		  > -> <A HREF="">H1</a +		  > <A HREF="">Int</a +		  > <A HREF="">Int</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:field" class="def" +			>field</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc" +		      ><p +			>hello docs +</p +			></dd +		      ></dl +		    ><div class="clear" +		    ></div +		    ></div +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:C4" class="def" +		  >C4</a +		  > ::  a -> <A HREF="">H1</a +		  > <A HREF="">Int</a +		  > a</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:field2" class="def" +			>field2</a +			> :: a</dt +		      ><dd class="doc" +		      ><p +			>hello2 docs +</p +			></dd +		      ></dl +		    ><div class="clear" +		    ></div +		    ></div +		  ></td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Hash.html.ref b/tests/golden-tests/tests/Hash.html.ref index b4fa23f7..1bb64d42 100644 --- a/tests/golden-tests/tests/Hash.html.ref +++ b/tests/golden-tests/tests/Hash.html.ref @@ -1,20 +1,284 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Hash.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Hash</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><A HREF="">The <code>HashTable</code> type -</a><ul><li><A HREF="">Operations on <code>HashTable</code>s -</a></li></ul></li><li><A HREF="">The <code>Hash</code> class -</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Implementation of fixed-size hash tables, with a type  +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Hash</p +	></div +      ><div id="table-of-contents" +      ><p class="caption" +	>Contents</p +	><ul +	><li +	  ><A HREF="">The <code +	      >HashTable</code +	      > type +</a +	    ><ul +	    ><li +	      ><A HREF="">Operations on <code +		  >HashTable</code +		  >s +</a +		></li +	      ></ul +	    ></li +	  ><li +	  ><A HREF="">The <code +	      >Hash</code +	      > class +</a +	    ></li +	  ></ul +	></div +      ><div id="description" +      ><p class="caption" +	>Description</p +	><div class="doc" +	><p +	  >Implementation of fixed-size hash tables, with a type     class for constructing hash values for structured types. -</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="">HashTable</a> key val</li><li class="src short"><A HREF="">new</a> :: (<A HREF="">Eq</a> key, <A HREF="">Hash</a> key) => <A HREF="">Int</a> -> <A HREF="">IO</a> (<A HREF="">HashTable</a> key val)</li><li class="src short"><A HREF="">insert</a> :: (<A HREF="">Eq</a> key, <A HREF="">Hash</a> key) => key -> val -> <A HREF="">IO</a> <A HREF="">()</a></li><li class="src short"><A HREF="">lookup</a> :: <A HREF="">Hash</a> key => key -> <A HREF="">IO</a> (<A HREF="">Maybe</a> val)</li><li class="src short"><span class="keyword">class</span>  <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></li></ul></div><div id="interface"><h1 id="g:1">The <code>HashTable</code> type -</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:HashTable" class="def">HashTable</a> key val </p><div class="doc"><p>A hash table with keys of type <code>key</code> and values of type <code>val</code>. - The type <code>key</code> should be an instance of <code><A HREF="">Eq</a></code>. -</p></div></div><h2 id="g:2">Operations on <code>HashTable</code>s -</h2><div class="top"><p class="src"><a name="v:new" class="def">new</a> :: (<A HREF="">Eq</a> key, <A HREF="">Hash</a> key) => <A HREF="">Int</a> -> <A HREF="">IO</a> (<A HREF="">HashTable</a> key val)</p><div class="doc"><p>Builds a new hash table with a given size -</p></div></div><div class="top"><p class="src"><a name="v:insert" class="def">insert</a> :: (<A HREF="">Eq</a> key, <A HREF="">Hash</a> key) => key -> val -> <A HREF="">IO</a> <A HREF="">()</a></p><div class="doc"><p>Inserts a new element into the hash table -</p></div></div><div class="top"><p class="src"><a name="v:lookup" class="def">lookup</a> :: <A HREF="">Hash</a> key => key -> <A HREF="">IO</a> (<A HREF="">Maybe</a> val)</p><div class="doc"><p>Looks up a key in the hash table, returns <code><code><A HREF="">Just</a></code> val</code> if the key - was found, or <code><A HREF="">Nothing</a></code> otherwise. -</p></div></div><h1 id="g:3">The <code>Hash</code> class -</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Hash" class="def">Hash</a> a  <span class="keyword">where</span></p><div class="doc"><p>A class of types which can be hashed. -</p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:hash" class="def">hash</a> :: a -> <A HREF="">Int</a></p><div class="doc"><p>hashes the value of type <code>a</code> into an <code><A HREF="">Int</a></code> -</p></div></div><div class="subs instances"><p id="control.i:Hash" class="caption collapser" onclick="toggleSection('i:Hash')">Instances</p><div id="section.i:Hash" class="show"><table><tr><td class="src"><A HREF="">Hash</a> <A HREF="">Float</a></td><td class="doc empty"> </td></tr><tr><td class="src"><A HREF="">Hash</a> <A HREF="">Int</a></td><td class="doc empty"> </td></tr><tr><td class="src">(<A HREF="">Hash</a> a, <A HREF="">Hash</a> b) => <A HREF="">Hash</a> (a, b)</td><td class="doc empty"> </td></tr></table></div></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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="">HashTable</a +	    > key val</li +	  ><li class="src short" +	  ><A HREF="">new</a +	    > :: (<A HREF="">Eq</a +	    > key, <A HREF="">Hash</a +	    > key) => <A HREF="">Int</a +	    > -> <A HREF="">IO</a +	    > (<A HREF="">HashTable</a +	    > key val)</li +	  ><li class="src short" +	  ><A HREF="">insert</a +	    > :: (<A HREF="">Eq</a +	    > key, <A HREF="">Hash</a +	    > key) => key -> val -> <A HREF="">IO</a +	    > <A HREF="">()</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">lookup</a +	    > :: <A HREF="">Hash</a +	    > key => key -> <A HREF="">IO</a +	    > (<A HREF="">Maybe</a +	    > val)</li +	  ><li class="src short" +	  ><span class="keyword" +	    >class</span +	    >  <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 +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 id="g:1" +	>The <code +	  >HashTable</code +	  > type +</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:HashTable" class="def" +	    >HashTable</a +	    > key val </p +	  ><div class="doc" +	  ><p +	    >A hash table with keys of type <code +	      >key</code +	      > and values of type <code +	      >val</code +	      >. + The type <code +	      >key</code +	      > should be an instance of <code +	      ><A HREF="">Eq</a +		></code +	      >. +</p +	    ></div +	  ></div +	><h2 id="g:2" +	>Operations on <code +	  >HashTable</code +	  >s +</h2 +	><div class="top" +	><p class="src" +	  ><a name="v:new" class="def" +	    >new</a +	    > :: (<A HREF="">Eq</a +	    > key, <A HREF="">Hash</a +	    > key) => <A HREF="">Int</a +	    > -> <A HREF="">IO</a +	    > (<A HREF="">HashTable</a +	    > key val)</p +	  ><div class="doc" +	  ><p +	    >Builds a new hash table with a given size +</p +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:insert" class="def" +	    >insert</a +	    > :: (<A HREF="">Eq</a +	    > key, <A HREF="">Hash</a +	    > key) => key -> val -> <A HREF="">IO</a +	    > <A HREF="">()</a +	    ></p +	  ><div class="doc" +	  ><p +	    >Inserts a new element into the hash table +</p +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:lookup" class="def" +	    >lookup</a +	    > :: <A HREF="">Hash</a +	    > key => key -> <A HREF="">IO</a +	    > (<A HREF="">Maybe</a +	    > val)</p +	  ><div class="doc" +	  ><p +	    >Looks up a key in the hash table, returns <code +	      ><code +		><A HREF="">Just</a +		  ></code +		> val</code +	      > if the key + was found, or <code +	      ><A HREF="">Nothing</a +		></code +	      > otherwise. +</p +	    ></div +	  ></div +	><h1 id="g:3" +	>The <code +	  >Hash</code +	  > class +</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >class</span +	    >  <a name="t:Hash" class="def" +	    >Hash</a +	    > a  <span class="keyword" +	    >where</span +	    ></p +	  ><div class="doc" +	  ><p +	    >A class of types which can be hashed. +</p +	    ></div +	  ><div class="subs methods" +	  ><p class="caption" +	    >Methods</p +	    ><p class="src" +	    ><a name="v:hash" class="def" +	      >hash</a +	      > :: a -> <A HREF="">Int</a +	      ></p +	    ><div class="doc" +	    ><p +	      >hashes the value of type <code +		>a</code +		> into an <code +		><A HREF="">Int</a +		  ></code +		> +</p +	      ></div +	    ></div +	  ><div class="subs instances" +	  ><p id="control.i:Hash" class="caption collapser" onclick="toggleSection('i:Hash')" +	    >Instances</p +	    ><div id="section.i:Hash" class="show" +	    ><table +	      ><tr +		><td class="src" +		  ><A HREF="">Hash</a +		    > <A HREF="">Float</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">Hash</a +		    > <A HREF="">Int</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  >(<A HREF="">Hash</a +		    > a, <A HREF="">Hash</a +		    > b) => <A HREF="">Hash</a +		    > (a, b)</td +		  ><td class="doc empty" +		  > </td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/NamedDoc.html.ref b/tests/golden-tests/tests/NamedDoc.html.ref index 25cdc423..4c514487 100644 --- a/tests/golden-tests/tests/NamedDoc.html.ref +++ b/tests/golden-tests/tests/NamedDoc.html.ref @@ -1,5 +1,57 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_NamedDoc.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">NamedDoc</p></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')"></ul></div><div id="interface"><h1>Documentation</h1><div class="doc"><p>bar -</p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>NamedDoc</p +	></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')" +	></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="doc" +	><p +	  >bar +</p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/NoLayout.html.ref b/tests/golden-tests/tests/NoLayout.html.ref index aa1fd3b9..cb073bf6 100644 --- a/tests/golden-tests/tests/NoLayout.html.ref +++ b/tests/golden-tests/tests/NoLayout.html.ref @@ -1,5 +1,71 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_NoLayout.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">NoLayout</p></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="">g</a> :: <A HREF="">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:g" class="def">g</a> :: <A HREF="">Int</a></p><div class="doc"><p>the function <code><A HREF="">g</a></code> -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>NoLayout</p +	></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="">g</a +	    > :: <A HREF="">Int</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:g" class="def" +	    >g</a +	    > :: <A HREF="">Int</a +	    ></p +	  ><div class="doc" +	  ><p +	    >the function <code +	      ><A HREF="">g</a +		></code +	      > +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/NonGreedy.html.ref b/tests/golden-tests/tests/NonGreedy.html.ref index 74d9d6a0..9e39b7c3 100644 --- a/tests/golden-tests/tests/NonGreedy.html.ref +++ b/tests/golden-tests/tests/NonGreedy.html.ref @@ -1,5 +1,68 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_NonGreedy.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">NonGreedy</p></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="">f</a> ::  a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:f" class="def">f</a> ::  a</p><div class="doc"><p><A HREF="">url1</a> <A HREF="">url2</a> -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>NonGreedy</p +	></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="">f</a +	    > ::  a</li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:f" class="def" +	    >f</a +	    > ::  a</p +	  ><div class="doc" +	  ><p +	    ><A HREF="">url1</a +	      > <A HREF="">url2</a +	      > +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/QuasiExpr.html.ref b/tests/golden-tests/tests/QuasiExpr.html.ref index 30735270..321631e4 100644 --- a/tests/golden-tests/tests/QuasiExpr.html.ref +++ b/tests/golden-tests/tests/QuasiExpr.html.ref @@ -1,4 +1,191 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_QuasiExpr.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">QuasiExpr</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Expr" class="def">Expr</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IntExpr" class="def">IntExpr</a> <A HREF="">Integer</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntiIntExpr" class="def">AntiIntExpr</a> <A HREF="">String</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:BinopExpr" class="def">BinopExpr</a> <A HREF="">BinOp</a> <A HREF="">Expr</a> <A HREF="">Expr</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:AntiExpr" class="def">AntiExpr</a> <A HREF="">String</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:Expr" class="caption collapser" onclick="toggleSection('i:Expr')">Instances</p><div id="section.i:Expr" class="show"><table><tr><td class="src"><A HREF="">Show</a> <A HREF="">Expr</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:BinOp" class="def">BinOp</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:AddOp" class="def">AddOp</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:SubOp" class="def">SubOp</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:MulOp" class="def">MulOp</a></td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:DivOp" class="def">DivOp</a></td><td class="doc empty"> </td></tr></table></div><div class="subs instances"><p id="control.i:BinOp" class="caption collapser" onclick="toggleSection('i:BinOp')">Instances</p><div id="section.i:BinOp" class="show"><table><tr><td class="src"><A HREF="">Show</a> <A HREF="">BinOp</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:eval" class="def">eval</a> :: <A HREF="">Expr</a> -> <A HREF="">Integer</a></p></div><div class="top"><p class="src"><a name="v:parseExprExp" class="def">parseExprExp</a> :: <A HREF="">String</a> -> Q Exp</p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>QuasiExpr</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:Expr" class="def" +	    >Expr</a +	    >  </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:IntExpr" class="def" +		  >IntExpr</a +		  > <A HREF="">Integer</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:AntiIntExpr" class="def" +		  >AntiIntExpr</a +		  > <A HREF="">String</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:BinopExpr" class="def" +		  >BinopExpr</a +		  > <A HREF="">BinOp</a +		  > <A HREF="">Expr</a +		  > <A HREF="">Expr</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:AntiExpr" class="def" +		  >AntiExpr</a +		  > <A HREF="">String</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ><div class="subs instances" +	  ><p id="control.i:Expr" class="caption collapser" onclick="toggleSection('i:Expr')" +	    >Instances</p +	    ><div id="section.i:Expr" class="show" +	    ><table +	      ><tr +		><td class="src" +		  ><A HREF="">Show</a +		    > <A HREF="">Expr</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:BinOp" class="def" +	    >BinOp</a +	    >  </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:AddOp" class="def" +		  >AddOp</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:SubOp" class="def" +		  >SubOp</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:MulOp" class="def" +		  >MulOp</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:DivOp" class="def" +		  >DivOp</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ><div class="subs instances" +	  ><p id="control.i:BinOp" class="caption collapser" onclick="toggleSection('i:BinOp')" +	    >Instances</p +	    ><div id="section.i:BinOp" class="show" +	    ><table +	      ><tr +		><td class="src" +		  ><A HREF="">Show</a +		    > <A HREF="">BinOp</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:eval" class="def" +	    >eval</a +	    > :: <A HREF="">Expr</a +	    > -> <A HREF="">Integer</a +	    ></p +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:parseExprExp" class="def" +	    >parseExprExp</a +	    > :: <A HREF="">String</a +	    > -> Q Exp</p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/QuasiQuote.html.ref b/tests/golden-tests/tests/QuasiQuote.html.ref index a4746d35..e1159268 100644 --- a/tests/golden-tests/tests/QuasiQuote.html.ref +++ b/tests/golden-tests/tests/QuasiQuote.html.ref @@ -1,4 +1,53 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_QuasiQuote.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">QuasiQuote</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:val" class="def">val</a> :: <A HREF="">Integer</a></p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>QuasiQuote</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:val" class="def" +	    >val</a +	    > :: <A HREF="">Integer</a +	    ></p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/TH.html.ref b/tests/golden-tests/tests/TH.html.ref index be34933f..be948582 100644 --- a/tests/golden-tests/tests/TH.html.ref +++ b/tests/golden-tests/tests/TH.html.ref @@ -1,4 +1,52 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">TH</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:decl" class="def">decl</a> :: Q [Dec]</p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>TH</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:decl" class="def" +	    >decl</a +	    > :: Q [Dec]</p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/TH2.html.ref b/tests/golden-tests/tests/TH2.html.ref index 96d164e4..950a391b 100644 --- a/tests/golden-tests/tests/TH2.html.ref +++ b/tests/golden-tests/tests/TH2.html.ref @@ -1,4 +1,44 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_TH2.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">TH2</p></div><div id="interface"></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>TH2</p +	></div +      ><div id="interface" +      ></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Test.html.ref b/tests/golden-tests/tests/Test.html.ref index e4c81c13..2acc5ec8 100644 --- a/tests/golden-tests/tests/Test.html.ref +++ b/tests/golden-tests/tests/Test.html.ref @@ -1,148 +1,1968 @@ -<!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[ +<!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" class="empty"> </p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>provisional</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</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 & 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 -> 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 -> <A HREF="">T2</a> <A HREF="">Int</a> <A HREF="">Int</a> -> <A HREF="">T3</a> <A HREF="">Bool</a> <A HREF="">Bool</a> -> <A HREF="">T4</a> <A HREF="">Float</a> <A HREF="">Float</a> -> <A HREF="">T5</a> <A HREF="">()</a> <A HREF="">()</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 => <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 => a -> <A HREF="">Int</a></li><li class="src short"><A HREF="">g</a> :: <A HREF="">Int</a> -> <A HREF="">IO</a> CInt</li><li class="src short"><A HREF="">hidden</a> :: <A HREF="">Int</a> -> <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 => <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 => <A HREF="">Ex3</a> b  </li><li>| <A HREF="">Ex4</a> (<span class="keyword">forall</span> a.  a -> a)  </li></ul></li><li class="src short"><A HREF="">k</a> :: <A HREF="">T</a> <A HREF="">()</a> <A HREF="">()</a> -> <A HREF="">T2</a> <A HREF="">Int</a> <A HREF="">Int</a> -> (<A HREF="">T3</a> <A HREF="">Bool</a> <A HREF="">Bool</a> -> <A HREF="">T4</a> <A HREF="">Float</a> <A HREF="">Float</a>) -> <A HREF="">T5</a> <A HREF="">()</a> <A HREF="">()</a> -> <A HREF="">IO</a> <A HREF="">()</a></li><li class="src short"><A HREF="">l</a> :: (<A HREF="">Int</a>, <A HREF="">Int</a>, <A HREF="">Float</a>) -> <A HREF="">Int</a></li><li class="src short"><A HREF="">m</a> :: <A HREF="">R</a> -> <A HREF="">N1</a> <A HREF="">()</a> -> <A HREF="">IO</a> <A HREF="">Int</a></li><li class="src short"><A HREF="">o</a> :: <A HREF="">Float</a> -> <A HREF="">IO</a> <A HREF="">Float</a></li><li class="src short"><A HREF="">f'</a> :: <A HREF="">Int</a></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 +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><table class="info" +	><tr +	  ><th +	    >Portability</th +	    ><td +	    >portable</td +	    ></tr +	  ><tr +	  ><th +	    >Stability</th +	    ><td +	    >provisional</td +	    ></tr +	  ><tr +	  ><th +	    >Maintainer</th +	    ><td +	    >libraries@haskell.org</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 & 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 -> 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 -> <A HREF="">T2</a +		    > <A HREF="">Int</a +		    > <A HREF="">Int</a +		    > -> <A HREF="">T3</a +		    > <A HREF="">Bool</a +		    > <A HREF="">Bool</a +		    > -> <A HREF="">T4</a +		    > <A HREF="">Float</a +		    > <A HREF="">Float</a +		    > -> <A HREF="">T5</a +		    > <A HREF="">()</a +		    > <A HREF="">()</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 => <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 => a -> <A HREF="">Int</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">g</a +	    > :: <A HREF="">Int</a +	    > -> <A HREF="">IO</a +	    > CInt</li +	  ><li class="src short" +	  ><A HREF="">hidden</a +	    > :: <A HREF="">Int</a +	    > -> <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 => <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 => <A HREF="">Ex3</a +		> b  </li +	      ><li +	      >| <A HREF="">Ex4</a +		> (<span class="keyword" +		>forall</span +		> a.  a -> a)  </li +	      ></ul +	    ></li +	  ><li class="src short" +	  ><A HREF="">k</a +	    > :: <A HREF="">T</a +	    > <A HREF="">()</a +	    > <A HREF="">()</a +	    > -> <A HREF="">T2</a +	    > <A HREF="">Int</a +	    > <A HREF="">Int</a +	    > -> (<A HREF="">T3</a +	    > <A HREF="">Bool</a +	    > <A HREF="">Bool</a +	    > -> <A HREF="">T4</a +	    > <A HREF="">Float</a +	    > <A HREF="">Float</a +	    >) -> <A HREF="">T5</a +	    > <A HREF="">()</a +	    > <A HREF="">()</a +	    > -> <A HREF="">IO</a +	    > <A HREF="">()</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">l</a +	    > :: (<A HREF="">Int</a +	    >, <A HREF="">Int</a +	    >, <A HREF="">Float</a +	    >) -> <A HREF="">Int</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">m</a +	    > :: <A HREF="">R</a +	    > -> <A HREF="">N1</a +	    > <A HREF="">()</a +	    > -> <A HREF="">IO</a +	    > <A HREF="">Int</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">o</a +	    > :: <A HREF="">Float</a +	    > -> <A HREF="">IO</a +	    > <A HREF="">Float</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">f'</a +	    > :: <A HREF="">Int</a +	    ></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"> </td></tr><tr><td class="src"><a name="v:B1" class="def">B1</a> b</td><td class="doc empty"> </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"> </td></tr><tr><td class="src"><a name="v:B2" class="def">B2</a> b</td><td class="doc empty"> </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"> </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"> </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"> </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"> </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 +</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" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:B1" class="def" +		  >B1</a +		  > b</td +		><td class="doc empty" +		> </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" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:B2" class="def" +		  >B2</a +		  > b</td +		><td class="doc empty" +		> </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" +		> </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" +		> </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" +		      > </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" +		> </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"> </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"> </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"> </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 -> 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 -> <A HREF="">T2</a> <A HREF="">Int</a> <A HREF="">Int</a> -> <A HREF="">T3</a> <A HREF="">Bool</a> <A HREF="">Bool</a> -> <A HREF="">T4</a> <A HREF="">Float</a> <A HREF="">Float</a> -> <A HREF="">T5</a> <A HREF="">()</a> <A HREF="">()</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:u" class="def">u</a> :: <A HREF="">Int</a></dt><dd class="doc empty"> </dd><dt class="src"><a name="v:v" class="def">v</a> :: <A HREF="">Int</a></dt><dd class="doc empty"> </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 => <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"> </td></tr><tr><td class="src"><A HREF="">D</a> <A HREF="">Int</a></td><td class="doc empty"> </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><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 => a -> <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> +</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" +		> </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" +		      > </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" +		      > </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 -> 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 -> <A HREF="">T2</a +			> <A HREF="">Int</a +			> <A HREF="">Int</a +			> -> <A HREF="">T3</a +			> <A HREF="">Bool</a +			> <A HREF="">Bool</a +			> -> <A HREF="">T4</a +			> <A HREF="">Float</a +			> <A HREF="">Float</a +			> -> <A HREF="">T5</a +			> <A HREF="">()</a +			> <A HREF="">()</a +			></dt +		      ><dd class="doc empty" +		      > </dd +		      ><dt class="src" +		      ><a name="v:u" class="def" +			>u</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc empty" +		      > </dd +		      ><dt class="src" +		      ><a name="v:v" class="def" +			>v</a +			> :: <A HREF="">Int</a +			></dt +		      ><dd class="doc empty" +		      > </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 => <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" +		  > </td +		  ></tr +		><tr +		><td class="src" +		  ><A HREF="">D</a +		    > <A HREF="">Int</a +		    ></td +		  ><td class="doc empty" +		  > </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 +	><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 => a -> <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> -> <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) +</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 +	    > -> <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 +</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 +</pre +	  ><pre +	  > test2    test3 -</pre></div><div class="doc"><pre> +</pre +	  ></div +	><div class="doc" +	><pre +	  >  test1  test2 -</pre></div><div class="doc"><pre>test3 +</pre +	  ></div +	><div class="doc" +	><pre +	  >test3  test4 -</pre></div><div class="doc"><pre> +</pre +	  ></div +	><div class="doc" +	><pre +	  >  test1  test2 -</pre><pre>test3 +</pre +	  ><pre +	  >test3  test4 -</pre></div><div class="doc"><pre>test3 +</pre +	  ></div +	><div class="doc" +	><pre +	  >test3  test4 -</pre><pre> +</pre +	  ><pre +	  >  test1  test2 -</pre></div><div class="doc"><p>aux11: -</p><pre>test3 +</pre +	  ></div +	><div class="doc" +	><p +	  >aux11: +</p +	  ><pre +	  >test3  test4 -</pre><pre> +</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 +</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 > (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> -> <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 => <a name="v:Ex1" class="def">Ex1</a> b</td><td class="doc empty"> </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"> </td></tr><tr><td class="src"><span class="keyword">forall</span> b . <A HREF="">C</a> a => <a name="v:Ex3" class="def">Ex3</a> b</td><td class="doc empty"> </td></tr><tr><td class="src"><a name="v:Ex4" class="def">Ex4</a> (<span class="keyword">forall</span> a.  a -> a)</td><td class="doc empty"> </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> <A HREF="">()</a> <A HREF="">()</a></td><td class="doc"><p>This argument has type <code><A HREF="">T</a></code> -</p></td></tr><tr><td class="src">-> <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">-> (<A HREF="">T3</a> <A HREF="">Bool</a> <A HREF="">Bool</a> -> <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 -> T4 Float Float</code> -</p></td></tr><tr><td class="src">-> <A HREF="">T5</a> <A HREF="">()</a> <A HREF="">()</a></td><td class="doc"><p>This argument has a very long description that should +</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 +	    > -> <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 => <a name="v:Ex1" class="def" +		  >Ex1</a +		  > b</td +		><td class="doc empty" +		> </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" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><span class="keyword" +		  >forall</span +		  > b . <A HREF="">C</a +		  > a => <a name="v:Ex3" class="def" +		  >Ex3</a +		  > b</td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		><a name="v:Ex4" class="def" +		  >Ex4</a +		  > (<span class="keyword" +		  >forall</span +		  > a.  a -> a)</td +		><td class="doc empty" +		> </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 +		  > <A HREF="">()</a +		  > <A HREF="">()</a +		  ></td +		><td class="doc" +		><p +		  >This argument has type <code +		    ><A HREF="">T</a +		      ></code +		    > +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <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" +		>-> (<A HREF="">T3</a +		  > <A HREF="">Bool</a +		  > <A HREF="">Bool</a +		  > -> <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 -> T4 Float Float</code +		    > +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">T5</a +		  > <A HREF="">()</a +		  > <A HREF="">()</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">-> <A HREF="">IO</a> <A HREF="">()</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">-> <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"> </td></tr><tr><td class="src">-> <A HREF="">N1</a> <A HREF="">()</a></td><td class="doc"><p>one of the arguments -</p></td></tr><tr><td class="src">-> <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">-> <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>  +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">IO</a +		  > <A HREF="">()</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" +		>-> <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" +		> </td +		></tr +	      ><tr +	      ><td class="src" +		>-> <A HREF="">N1</a +		  > <A HREF="">()</a +		  ></td +		><td class="doc" +		><p +		  >one of the arguments +</p +		  ></td +		></tr +	      ><tr +	      ><td class="src" +		>-> <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" +		>-> <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></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Ticket112.html.ref b/tests/golden-tests/tests/Ticket112.html.ref index e554c794..f29b507a 100644 --- a/tests/golden-tests/tests/Ticket112.html.ref +++ b/tests/golden-tests/tests/Ticket112.html.ref @@ -1,5 +1,69 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Ticket112.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Ticket112</p></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="">f</a> ::  a</li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:f" class="def">f</a> ::  a</p><div class="doc"><p>...given a raw <code><A HREF="">Addr#</a></code> to the string, and the length of the string. -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Ticket112</p +	></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="">f</a +	    > ::  a</li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:f" class="def" +	    >f</a +	    > ::  a</p +	  ><div class="doc" +	  ><p +	    >...given a raw <code +	      ><A HREF="">Addr#</a +		></code +	      > to the string, and the length of the string. +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Ticket61.html.ref b/tests/golden-tests/tests/Ticket61.html.ref index 5abb62a9..453cabad 100644 --- a/tests/golden-tests/tests/Ticket61.html.ref +++ b/tests/golden-tests/tests/Ticket61.html.ref @@ -1,5 +1,69 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Ticket61.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Ticket61</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:C" class="def">C</a> a  <span class="keyword">where</span></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:f" class="def">f</a> :: a</p><div class="doc"><p>A comment about f -</p></div></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Ticket61</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >class</span +	    >  <a name="t:C" class="def" +	    >C</a +	    > a  <span class="keyword" +	    >where</span +	    ></p +	  ><div class="subs methods" +	  ><p class="caption" +	    >Methods</p +	    ><p class="src" +	    ><a name="v:f" class="def" +	      >f</a +	      > :: a</p +	    ><div class="doc" +	    ><p +	      >A comment about f +</p +	      ></div +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Ticket75.html.ref b/tests/golden-tests/tests/Ticket75.html.ref index 0ec179cb..dcadf429 100644 --- a/tests/golden-tests/tests/Ticket75.html.ref +++ b/tests/golden-tests/tests/Ticket75.html.ref @@ -1,5 +1,99 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Ticket75.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Ticket75</p></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 <A HREF="">:-</a> b = <A HREF="">Q</a></li><li class="src short"><A HREF="">f</a> :: <A HREF="">Int</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">data</span>  a <a name="t::-45-" class="def">:-</a> b </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Q" class="def">Q</a></td><td class="doc empty"> </td></tr></table></div></div><div class="top"><p class="src"><a name="v:f" class="def">f</a> :: <A HREF="">Int</a></p><div class="doc"><p>A reference to <code><A HREF="">:-</a></code> -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Ticket75</p +	></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 <A HREF="">:-</a +	    > b = <A HREF="">Q</a +	    ></li +	  ><li class="src short" +	  ><A HREF="">f</a +	    > :: <A HREF="">Int</a +	    ></li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  a <a name="t::-45-" class="def" +	    >:-</a +	    > b </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:Q" class="def" +		  >Q</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ></table +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:f" class="def" +	    >f</a +	    > :: <A HREF="">Int</a +	    ></p +	  ><div class="doc" +	  ><p +	    >A reference to <code +	      ><A HREF="">:-</a +		></code +	      > +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/TypeFamilies.html.ref b/tests/golden-tests/tests/TypeFamilies.html.ref index ee883c2a..02ad9920 100644 --- a/tests/golden-tests/tests/TypeFamilies.html.ref +++ b/tests/golden-tests/tests/TypeFamilies.html.ref @@ -1,9 +1,168 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_TypeFamilies.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">TypeFamilies</p></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">type family</span> <A HREF="">G</a> a :: *</li><li class="src short"><span class="keyword">class</span>  <A HREF="">A</a> a  <span class="keyword">where</span><ul class="subs"><li><span class="keyword">data</span> <A HREF="">B</a> a :: * -> *</li><li><A HREF="">f</a> :: <A HREF="">B</a> a <A HREF="">Int</a></li></ul></li><li class="src short"><span class="keyword">type family</span> <A HREF="">F</a> a </li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:G" class="def">G</a> a :: *</p><div class="doc"><p>Type family G -</p></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:A" class="def">A</a> a  <span class="keyword">where</span></p><div class="doc"><p>A class with an associated type -</p></div><div class="subs associated-types"><p class="caption">Associated Types</p><p class="src"><span class="keyword">data</span> <a name="t:B" class="def">B</a> a :: * -> *</p><div class="doc"><p>An associated type -</p></div></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:f" class="def">f</a> :: <A HREF="">B</a> a <A HREF="">Int</a></p><div class="doc"><p>A method -</p></div></div><div class="subs instances"><p id="control.i:A" class="caption collapser" onclick="toggleSection('i:A')">Instances</p><div id="section.i:A" class="show"><table><tr><td class="src"><A HREF="">A</a> <A HREF="">Int</a></td><td class="doc empty"> </td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type family</span> <a name="t:F" class="def">F</a> a </p><div class="doc"><p>Doc for family -</p></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>TypeFamilies</p +	></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" +	    >type family</span +	    > <A HREF="">G</a +	    > a :: *</li +	  ><li class="src short" +	  ><span class="keyword" +	    >class</span +	    >  <A HREF="">A</a +	    > a  <span class="keyword" +	    >where</span +	    ><ul class="subs" +	    ><li +	      ><span class="keyword" +		>data</span +		> <A HREF="">B</a +		> a :: * -> *</li +	      ><li +	      ><A HREF="">f</a +		> :: <A HREF="">B</a +		> a <A HREF="">Int</a +		></li +	      ></ul +	    ></li +	  ><li class="src short" +	  ><span class="keyword" +	    >type family</span +	    > <A HREF="">F</a +	    > a </li +	  ></ul +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >type family</span +	    > <a name="t:G" class="def" +	    >G</a +	    > a :: *</p +	  ><div class="doc" +	  ><p +	    >Type family G +</p +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >class</span +	    >  <a name="t:A" class="def" +	    >A</a +	    > a  <span class="keyword" +	    >where</span +	    ></p +	  ><div class="doc" +	  ><p +	    >A class with an associated type +</p +	    ></div +	  ><div class="subs associated-types" +	  ><p class="caption" +	    >Associated Types</p +	    ><p class="src" +	    ><span class="keyword" +	      >data</span +	      > <a name="t:B" class="def" +	      >B</a +	      > a :: * -> *</p +	    ><div class="doc" +	    ><p +	      >An associated type +</p +	      ></div +	    ></div +	  ><div class="subs methods" +	  ><p class="caption" +	    >Methods</p +	    ><p class="src" +	    ><a name="v:f" class="def" +	      >f</a +	      > :: <A HREF="">B</a +	      > a <A HREF="">Int</a +	      ></p +	    ><div class="doc" +	    ><p +	      >A method +</p +	      ></div +	    ></div +	  ><div class="subs instances" +	  ><p id="control.i:A" class="caption collapser" onclick="toggleSection('i:A')" +	    >Instances</p +	    ><div id="section.i:A" class="show" +	    ><table +	      ><tr +		><td class="src" +		  ><A HREF="">A</a +		    > <A HREF="">Int</a +		    ></td +		  ><td class="doc empty" +		  > </td +		  ></tr +		></table +	      ></div +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >type family</span +	    > <a name="t:F" class="def" +	    >F</a +	    > a </p +	  ><div class="doc" +	  ><p +	    >Doc for family +</p +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/TypeOperators.html.ref b/tests/golden-tests/tests/TypeOperators.html.ref index 0e6ec27d..445af672 100644 --- a/tests/golden-tests/tests/TypeOperators.html.ref +++ b/tests/golden-tests/tests/TypeOperators.html.ref @@ -1,6 +1,215 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_TypeOperators.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">TypeOperators</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><A HREF="">stuff -</a></li></ul></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 <A HREF="">:-:</a> b</li><li class="src short"><span class="keyword">data</span>  (a <A HREF="">:+:</a> b) c</li><li class="src short"><span class="keyword">data</span>  <A HREF="">Op</a> a b</li><li class="src short"><span class="keyword">newtype</span>  <A HREF="">O</a> g f a = <A HREF="">O</a> {<ul class="subs"><li><A HREF="">unO</a> :: g (f a)</li></ul>}</li><li class="src short"><A HREF="">biO</a> ::  (g `<A HREF="">O</a>` f) a</li><li class="src short"><span class="keyword">newtype</span>  <A HREF="">Flip</a> (~>) b a = <A HREF="">Flip</a> {<ul class="subs"><li><A HREF="">unFlip</a> :: a ~> b</li></ul>}</li></ul></div><div id="interface"><h1 id="g:1">stuff -</h1><div class="top"><p class="src"><span class="keyword">data</span>  a <a name="t::-45-:" class="def">:-:</a> b </p></div><div class="top"><p class="src"><span class="keyword">data</span>  (a <a name="t::-43-:" class="def">:+:</a> b) c </p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Op" class="def">Op</a> a b </p></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:O" class="def">O</a> g f a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:O" class="def">O</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:unO" class="def">unO</a> :: g (f a)</dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><a name="v:biO" class="def">biO</a> ::  (g `<A HREF="">O</a>` f) a</p></div><div class="top"><p class="src"><span class="keyword">newtype</span>  <a name="t:Flip" class="def">Flip</a> (~>) b a </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Flip" class="def">Flip</a></td><td class="doc empty"> </td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:unFlip" class="def">unFlip</a> :: a ~> b</dt><dd class="doc empty"> </dd></dl><div class="clear"></div></div></td></tr></table></div></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>TypeOperators</p +	></div +      ><div id="table-of-contents" +      ><p class="caption" +	>Contents</p +	><ul +	><li +	  ><A HREF="">stuff +</a +	    ></li +	  ></ul +	></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 <A HREF="">:-:</a +	    > b</li +	  ><li class="src short" +	  ><span class="keyword" +	    >data</span +	    >  (a <A HREF="">:+:</a +	    > b) c</li +	  ><li class="src short" +	  ><span class="keyword" +	    >data</span +	    >  <A HREF="">Op</a +	    > a b</li +	  ><li class="src short" +	  ><span class="keyword" +	    >newtype</span +	    >  <A HREF="">O</a +	    > g f a = <A HREF="">O</a +	    > {<ul class="subs" +	    ><li +	      ><A HREF="">unO</a +		> :: g (f a)</li +	      ></ul +	    >}</li +	  ><li class="src short" +	  ><A HREF="">biO</a +	    > ::  (g `<A HREF="">O</a +	    >` f) a</li +	  ><li class="src short" +	  ><span class="keyword" +	    >newtype</span +	    >  <A HREF="">Flip</a +	    > (~>) b a = <A HREF="">Flip</a +	    > {<ul class="subs" +	    ><li +	      ><A HREF="">unFlip</a +		> :: a ~> b</li +	      ></ul +	    >}</li +	  ></ul +	></div +      ><div id="interface" +      ><h1 id="g:1" +	>stuff +</h1 +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  a <a name="t::-45-:" class="def" +	    >:-:</a +	    > b </p +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  (a <a name="t::-43-:" class="def" +	    >:+:</a +	    > b) c </p +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >data</span +	    >  <a name="t:Op" class="def" +	    >Op</a +	    > a b </p +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >newtype</span +	    >  <a name="t:O" class="def" +	    >O</a +	    > g f a </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:O" class="def" +		  >O</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:unO" class="def" +			>unO</a +			> :: g (f a)</dt +		      ><dd class="doc empty" +		      > </dd +		      ></dl +		    ><div class="clear" +		    ></div +		    ></div +		  ></td +		></tr +	      ></table +	    ></div +	  ></div +	><div class="top" +	><p class="src" +	  ><a name="v:biO" class="def" +	    >biO</a +	    > ::  (g `<A HREF="">O</a +	    >` f) a</p +	  ></div +	><div class="top" +	><p class="src" +	  ><span class="keyword" +	    >newtype</span +	    >  <a name="t:Flip" class="def" +	    >Flip</a +	    > (~>) b a </p +	  ><div class="subs constructors" +	  ><p class="caption" +	    >Constructors</p +	    ><table +	    ><tr +	      ><td class="src" +		><a name="v:Flip" class="def" +		  >Flip</a +		  ></td +		><td class="doc empty" +		> </td +		></tr +	      ><tr +	      ><td colspan="2" +		><div class="subs fields" +		  ><p class="caption" +		    >Fields</p +		    ><dl +		    ><dt class="src" +		      ><a name="v:unFlip" class="def" +			>unFlip</a +			> :: a ~> b</dt +		      ><dd class="doc empty" +		      > </dd +		      ></dl +		    ><div class="clear" +		    ></div +		    ></div +		  ></td +		></tr +	      ></table +	    ></div +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +> diff --git a/tests/golden-tests/tests/Visible.html.ref b/tests/golden-tests/tests/Visible.html.ref index 920338ed..3dc3418f 100644 --- a/tests/golden-tests/tests/Visible.html.ref +++ b/tests/golden-tests/tests/Visible.html.ref @@ -1,4 +1,54 @@ -<!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" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[ +<!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" +     /><script src="haddock-util.js" type="text/javascript" +    ></script +    ><script type="text/javascript" +    >//<![CDATA[  window.onload = function () {pageLoad();setSynopsis("mini_Visible.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" class="empty"> </p></div><div id="content"><div id="module-header"><p class="caption">Visible</p></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><a name="v:visible" class="def">visible</a> :: <A HREF="">Int</a> -> <A HREF="">Int</a></p></div></div></div><div id="footer"><p>Produced by <A HREF="">Haddock</a> version 2.8.2</p></div></body></html>
\ No newline at end of file +</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" class="empty" +      > </p +      ></div +    ><div id="content" +    ><div id="module-header" +      ><p class="caption" +	>Visible</p +	></div +      ><div id="interface" +      ><h1 +	>Documentation</h1 +	><div class="top" +	><p class="src" +	  ><a name="v:visible" class="def" +	    >visible</a +	    > :: <A HREF="">Int</a +	    > -> <A HREF="">Int</a +	    ></p +	  ></div +	></div +      ></div +    ><div id="footer" +    ><p +      >Produced by <A HREF="">Haddock</a +	> version 2.8.2</p +      ></div +    ></body +  ></html +>  | 
