<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" ><head ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title >Test</title ><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript" ></script ><script type="text/javascript" >//<![CDATA[ window.onload = function () {pageLoad();setSynopsis("mini_Test.html");}; //]]> </script ></head ><body ><div id="package-header" ><ul class="links" id="page-menu" ><li ><a href="" >Contents</a ></li ><li ><a href="" >Index</a ></li ></ul ><p class="caption empty" > </p ></div ><div id="content" ><div id="module-header" ><table class="info" ><tr ><th >Copyright</th ><td >(c) Simon Marlow 2002</td ></tr ><tr ><th >License</th ><td >BSD-style</td ></tr ><tr ><th >Maintainer</th ><td >libraries@haskell.org</td ></tr ><tr ><th >Stability</th ><td >provisional</td ></tr ><tr ><th >Portability</th ><td >portable</td ></tr ><tr ><th >Safe Haskell</th ><td >Safe-Inferred</td ></tr ></table ><p class="caption" >Test</p ></div ><div id="table-of-contents" ><p class="caption" >Contents</p ><ul ><li ><a href="" >Type declarations</a ><ul ><li ><a href="" >Data types</a ></li ><li ><a href="" >Records</a ></li ></ul ></li ><li ><a href="" >Class declarations</a ></li ><li ><a href="" >Function types</a ></li ><li ><a href="" >Auxiliary stuff</a ></li ><li ><a href="" >A hidden module</a ></li ><li ><a href="" >A visible module</a ></li ><li ><a href="" >Existential / Universal types</a ></li ><li ><a href="" >Type signatures with argument docs</a ></li ><li ><a href="" >A section</a ><ul ><li ><a href="" >A subsection</a ></li ></ul ></li ></ul ></div ><div id="description" ><p class="caption" >Description</p ><div class="doc" ><p >This module illustrates & 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 > () ()</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="" >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="" >IO</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="" >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 ><li class="src short" ><a href="" >withType</a > :: <a href="" >Int</a ></li ><li class="src short" ><a href="" >withoutType</a > :: t</li ></ul ></div ><div id="interface" ><h1 id="g:1" >Type declarations</h1 ><h2 id="g:2" >Data types</h2 ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a name="t:T" class="def" >T</a > a b</p ><div class="doc" ><p >This comment applies to the <em >following</em > declaration and it continues until the next non-comment line</p ></div ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a name="v:A" class="def" >A</a > <a href="" >Int</a > (<a href="" >Maybe</a > <a href="" >Float</a >)</td ><td class="doc" ><p >This comment describes the <code ><a href="" >A</a ></code > constructor</p ></td ></tr ><tr ><td class="src" ><a name="v:B" class="def" >B</a > (<a href="" >T</a > a b, <a href="" >T</a > <a href="" >Int</a > <a href="" >Float</a >)</td ><td class="doc" ><p >This comment describes the <code ><a href="" >B</a ></code > constructor</p ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a name="t:T2" class="def" >T2</a > a b</p ><div class="doc" ><p >An abstract data declaration</p ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a name="t:T3" class="def" >T3</a > a b</p ><div class="doc" ><p >A data declaration with no documentation annotations on the constructors</p ></div ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a name="v:A1" class="def" >A1</a > a</td ><td class="doc empty" > </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 > () ()</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 class="subs minimal" ><p class="caption" >Minimal complete definition</p ><p class="src" >ee</p ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >class</span > <a name="t:F" class="def" >F</a > a <span class="keyword" >where</span ></p ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a name="v:ff" class="def" >ff</a > :: a</p ></div ></div ><div class="doc" ><p >Test that we can export a class method on its own:</p ></div ><h1 id="g:5" >Function types</h1 ><div class="top" ><p class="src" ><a name="v:f" class="def" >f</a > :: <a href="" >C</a > a => 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) rather than a source declaration. The documentation may be referred to in the export list using its name.</p ><pre > code block in named doc</pre ></div ><div class="doc" ><p >This is some documentation that is attached to a name ($aux2)</p ></div ><div class="doc" ><pre > code block on its own in named doc</pre ></div ><div class="doc" ><pre > code block on its own in named doc (after newline)</pre ></div ><div class="doc" ><p >a nested, named doc comment</p ><p >with a paragraph,</p ><pre > and a code block</pre ></div ><div class="doc" ><pre >test test1</pre ><pre > test2 test3 </pre ></div ><div class="doc" ><pre >test1 test2 </pre ></div ><div class="doc" ><pre >test3 test4</pre ></div ><div class="doc" ><pre >test1 test2 </pre ><pre >test3 test4</pre ></div ><div class="doc" ><pre >test3 test4</pre ><pre >test1 test2 </pre ></div ><div class="doc" ><p >aux11:</p ><pre >test3 test4</pre ><pre >test1 test2 </pre ></div ><div class="doc" ><pre >foo</pre ><pre >bar</pre ></div ><div class="doc" ><p >This is some inline documentation in the export list</p ><pre >a code block using bird-tracks each line must begin with > (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 > () ()</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 > () ()</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 > ()</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 > ()</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 class="top" ><p class="src" ><a name="v:withType" class="def" >withType</a > :: <a href="" >Int</a ></p ><div class="doc" ><p >Comment on a definition with type signature</p ></div ></div ><div class="top" ><p class="src" ><a name="v:withoutType" class="def" >withoutType</a > :: t</p ><div class="doc" ><p >Comment on a definition without type signature</p ></div ></div ></div ></div ><div id="footer" ><p >Produced by <a href="" >Haddock</a > version 2.15.0</p ></div ></body ></html >