<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="#" rel="stylesheet" type="text/css" title="Ocean" /><link rel="stylesheet" type="text/css" href="#" /><script src="haddock-bundle.min.js" async="async" type="text/javascript" ></script ><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML" type="text/javascript" ></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 valign="top" >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</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="#" title="Test" >T</a ></code >, <code ><a href="#" title="Test" >f</a ></code >, <code ><a href="#" title="Test" >g</a ></code >, <code ><a href="#" title="Visible" >visible</a ></code >.</p ></div ></div ><div id="synopsis" ><details id="syn" ><summary >Synopsis</summary ><ul class="details-toggle" data-details-id="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="#" title="Data.Int" >Int</a > (<a href="#" title="GHC.Maybe" >Maybe</a > <a href="#" title="Prelude" >Float</a >)</li ><li >| <a href="#" >B</a > (<a href="#" title="Test" >T</a > a b, <a href="#" title="Test" >T</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Prelude" >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="#" title="Data.Int" >Int</a ></li ><li ><a href="#" >q</a > :: <span class="keyword" >forall</span > a. a -> a</li ><li ><a href="#" >r</a >, <a href="#" >s</a > :: <a href="#" title="Data.Int" >Int</a ></li ></ul > }</li ><li >| <a href="#" >C2</a > { <ul class="subs" ><li ><a href="#" >t</a > :: T1 -> <a href="#" title="Test" >T2</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="Test" >T3</a > <a href="#" title="Data.Bool" >Bool</a > <a href="#" title="Data.Bool" >Bool</a > -> <a href="#" title="Test" >T4</a > <a href="#" title="Prelude" >Float</a > <a href="#" title="Prelude" >Float</a > -> <a href="#" title="Test" >T5</a > () ()</li ><li ><a href="#" >u</a >, <a href="#" >v</a > :: <a href="#" title="Data.Int" >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="#" title="Data.Int" >Int</a ></li ><li ><a href="#" >s2</a > :: <a href="#" title="Data.Int" >Int</a ></li ><li ><a href="#" >s3</a > :: <a href="#" title="Data.Int" >Int</a ></li ></ul >}</li ><li class="src short" ><a href="#" >p</a > :: <a href="#" title="Test" >R</a > -> <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >q</a > :: <a href="#" title="Test" >R</a > -> <span class="keyword" >forall</span > a. a -> a</li ><li class="src short" ><a href="#" >u</a > :: <a href="#" title="Test" >R</a > -> <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><span class="keyword" >class</span > <a href="#" title="Test" >D</a > a => <a href="#" >C</a > a <span class="keyword" >where</span ><ul class="subs" ><li ><a href="#" >a</a > :: <a href="#" title="System.IO" >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="#" title="Test" >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="#" >a</a > :: <a href="#" title="Test" >C</a > a => <a href="#" title="System.IO" >IO</a > a</li ><li class="src short" ><a href="#" >f</a > :: <a href="#" title="Test" >C</a > a => a -> <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >g</a > :: <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="System.IO" >IO</a > CInt</li ><li class="src short" ><a href="#" >hidden</a > :: <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="Data.Int" >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 >= <a href="#" title="Test" >C</a > b => <a href="#" >Ex1</a > b</li ><li >| <a href="#" >Ex2</a > b</li ><li >| <a href="#" title="Test" >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="#" title="Test" >T</a > () () -> <a href="#" title="Test" >T2</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Data.Int" >Int</a > -> (<a href="#" title="Test" >T3</a > <a href="#" title="Data.Bool" >Bool</a > <a href="#" title="Data.Bool" >Bool</a > -> <a href="#" title="Test" >T4</a > <a href="#" title="Prelude" >Float</a > <a href="#" title="Prelude" >Float</a >) -> <a href="#" title="Test" >T5</a > () () -> <a href="#" title="System.IO" >IO</a > ()</li ><li class="src short" ><a href="#" >l</a > :: (<a href="#" title="Data.Int" >Int</a >, <a href="#" title="Data.Int" >Int</a >, <a href="#" title="Prelude" >Float</a >) -> <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >m</a > :: <a href="#" title="Test" >R</a > -> <a href="#" title="Test" >N1</a > () -> <a href="#" title="System.IO" >IO</a > <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >o</a > :: <a href="#" title="Prelude" >Float</a > -> <a href="#" title="System.IO" >IO</a > <a href="#" title="Prelude" >Float</a ></li ><li class="src short" ><a href="#" >f'</a > :: <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >withType</a > :: <a href="#" title="Data.Int" >Int</a ></li ><li class="src short" ><a href="#" >withoutType</a > :: a</li ></ul ></details ></div ><div id="interface" ><a href="#" id="g:1" ><h1 >Type declarations</h1 ></a ><a href="#" id="g:2" ><h2 >Data types</h2 ></a ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:T" class="def" >T</a > a b <a href="#" class="selflink" >#</a ></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 id="v:A" class="def" >A</a > <a href="#" title="Data.Int" >Int</a > (<a href="#" title="GHC.Maybe" >Maybe</a > <a href="#" title="Prelude" >Float</a >)</td ><td class="doc" ><p >This comment describes the <code ><a href="#" title="Test" >A</a ></code > constructor</p ></td ></tr ><tr ><td class="src" ><a id="v:B" class="def" >B</a > (<a href="#" title="Test" >T</a > a b, <a href="#" title="Test" >T</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Prelude" >Float</a >)</td ><td class="doc" ><p >This comment describes the <code ><a href="#" title="Test" >B</a ></code > constructor</p ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:T2" class="def" >T2</a > a b <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >An abstract data declaration</p ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:T3" class="def" >T3</a > a b <a href="#" class="selflink" >#</a ></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 id="v:A1" class="def" >A1</a > a</td ><td class="doc empty" ></td ></tr ><tr ><td class="src" ><a id="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 id="t:T4" class="def" >T4</a > a b <a href="#" class="selflink" >#</a ></p ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a id="v:A2" class="def" >A2</a > a</td ><td class="doc empty" ></td ></tr ><tr ><td class="src" ><a id="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 id="t:T5" class="def" >T5</a > a b <a href="#" class="selflink" >#</a ></p ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a id="v:A3" class="def" >A3</a > a</td ><td class="doc" ><p >documents <code ><a href="#" title="Test" >A3</a ></code ></p ></td ></tr ><tr ><td class="src" ><a id="v:B3" class="def" >B3</a > b</td ><td class="doc" ><p >documents <code ><a href="#" title="Test" >B3</a ></code ></p ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:T6" class="def" >T6</a > <a href="#" class="selflink" >#</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 id="v:A4" class="def" >A4</a ></td ><td class="doc" ><p >This is the doc for <code ><a href="#" title="Test" >A4</a ></code ></p ></td ></tr ><tr ><td class="src" ><a id="v:B4" class="def" >B4</a ></td ><td class="doc" ><p >This is the doc for <code ><a href="#" title="Test" >B4</a ></code ></p ></td ></tr ><tr ><td class="src" ><a id="v:C4" class="def" >C4</a ></td ><td class="doc" ><p >This is the doc for <code ><a href="#" title="Test" >C4</a ></code ></p ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >newtype</span > <a id="t:N1" class="def" >N1</a > a <a href="#" class="selflink" >#</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 id="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 id="t:N2" class="def" >N2</a > a b <a href="#" class="selflink" >#</a ></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 id="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 ><ul ><li ><dfn class="src" ><a id="v:n" class="def" >n</a > :: a b</dfn ><div class="doc empty" ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >newtype</span > <a id="t:N3" class="def" >N3</a > a b <a href="#" class="selflink" >#</a ></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 id="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 ><ul ><li ><dfn class="src" ><a id="v:n3" class="def" >n3</a > :: a b</dfn ><div class="doc" ><p >this is the <code ><a href="#" title="Test" >n3</a ></code > field</p ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:N4" class="def" >N4</a > a b <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >An abstract newtype - we show this one as data rather than newtype because 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 id="t:N5" class="def" >N5</a > a b <a href="#" class="selflink" >#</a ></p ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a id="v: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 ><ul ><li ><dfn class="src" ><a id="v:n5" class="def" >n5</a > :: a b</dfn ><div class="doc" ><p >no docs on the datatype or the constructor</p ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >newtype</span > <a id="t:N6" class="def" >N6</a > a b <a href="#" class="selflink" >#</a ></p ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a id="v: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 ><ul ><li ><dfn class="src" ><a id="v:n6" class="def" >n6</a > :: a b</dfn ><div class="doc empty" ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >newtype</span > <a id="t:N7" class="def" >N7</a > a b <a href="#" class="selflink" >#</a ></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 id="v:N7" class="def" >N7</a ></td ><td class="doc" ><p >The <code ><a href="#" title="Test" >N7</a ></code > constructor</p ></td ></tr ><tr ><td colspan="2" ><div class="subs fields" ><p class="caption" >Fields</p ><ul ><li ><dfn class="src" ><a id="v:n7" class="def" >n7</a > :: a b</dfn ><div class="doc empty" ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><a href="#" id="g:3" ><h2 >Records</h2 ></a ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:R" class="def" >R</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >This is the documentation for the <code ><a href="#" title="Test" >R</a ></code > record, which has four fields, <code ><a href="#" title="Test" >p</a ></code >, <code ><a href="#" title="Test" >q</a ></code >, <code ><a href="#" title="Test" >r</a ></code >, and <code ><a href="#" title="Test" >s</a ></code >.</p ></div ><div class="subs constructors" ><p class="caption" >Constructors</p ><table ><tr ><td class="src" ><a id="v:C1" class="def" >C1</a ></td ><td class="doc" ><p >This is the <code ><a href="#" title="Test" >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 ><ul ><li ><dfn class="src" ><a id="v:p" class="def" >p</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc" ><p >This comment applies to the <code ><a href="#" title="Test" >p</a ></code > field</p ></div ></li ><li ><dfn class="src" ><a id="v:q" class="def" >q</a > :: <span class="keyword" >forall</span > a. a -> a</dfn ><div class="doc" ><p >This comment applies to the <code ><a href="#" title="Test" >q</a ></code > field</p ></div ></li ><li ><dfn class="src" ><a id="v:r" class="def" >r</a >, <a id="v:s" class="def" >s</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc" ><p >This comment applies to both <code ><a href="#" title="Test" >r</a ></code > and <code ><a href="#" title="Test" >s</a ></code ></p ></div ></li ></ul ></div ></td ></tr ><tr ><td class="src" ><a id="v:C2" class="def" >C2</a ></td ><td class="doc" ><p >This is the <code ><a href="#" title="Test" >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 ><ul ><li ><dfn class="src" ><a id="v:t" class="def" >t</a > :: T1 -> <a href="#" title="Test" >T2</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="Test" >T3</a > <a href="#" title="Data.Bool" >Bool</a > <a href="#" title="Data.Bool" >Bool</a > -> <a href="#" title="Test" >T4</a > <a href="#" title="Prelude" >Float</a > <a href="#" title="Prelude" >Float</a > -> <a href="#" title="Test" >T5</a > () ()</dfn ><div class="doc empty" ></div ></li ><li ><dfn class="src" ><a id="v:u" class="def" >u</a >, <a id="v:v" class="def" >v</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc empty" ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:R1" class="def" >R1</a > <a href="#" class="selflink" >#</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 id="v:C3" class="def" >C3</a ></td ><td class="doc" ><p >This is the <code ><a href="#" title="Test" >C3</a ></code > record constructor</p ></td ></tr ><tr ><td colspan="2" ><div class="subs fields" ><p class="caption" >Fields</p ><ul ><li ><dfn class="src" ><a id="v:s1" class="def" >s1</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc" ><p >The <code ><a href="#" title="Test" >s1</a ></code > record selector</p ></div ></li ><li ><dfn class="src" ><a id="v:s2" class="def" >s2</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc" ><p >The <code ><a href="#" title="Test" >s2</a ></code > record selector</p ></div ></li ><li ><dfn class="src" ><a id="v:s3" class="def" >s3</a > :: <a href="#" title="Data.Int" >Int</a ></dfn ><div class="doc" ><p >The <code ><a href="#" title="Test" >s3</a ></code > record selector</p ></div ></li ></ul ></div ></td ></tr ></table ></div ></div ><div class="doc" ><p >test that we can export record selectors on their own:</p ></div ><div class="top" ><p class="src" ><a id="v:p" class="def" >p</a > :: <a href="#" title="Test" >R</a > -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >This comment applies to the <code ><a href="#" title="Test" >p</a ></code > field</p ></div ></div ><div class="top" ><p class="src" ><a id="v:q" class="def" >q</a > :: <a href="#" title="Test" >R</a > -> <span class="keyword" >forall</span > a. a -> a <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >This comment applies to the <code ><a href="#" title="Test" >q</a ></code > field</p ></div ></div ><div class="top" ><p class="src" ><a id="v:u" class="def" >u</a > :: <a href="#" title="Test" >R</a > -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ></div ><a href="#" id="g:4" ><h1 >Class declarations</h1 ></a ><div class="top" ><p class="src" ><span class="keyword" >class</span > <a href="#" title="Test" >D</a > a => <a id="t:C" class="def" >C</a > a <span class="keyword" >where</span > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >This comment applies to the <em >previous</em > declaration (the <code ><a href="#" title="Test" >C</a ></code > class)</p ></div ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a id="v:a" class="def" >a</a > :: <a href="#" title="System.IO" >IO</a > a <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >this is a description of the <code ><a href="#" title="Test" >a</a ></code > method</p ></div ><p class="src" ><a id="v:b" class="def" >b</a > :: [a] <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >this is a description of the <code ><a href="#" title="Test" >b</a ></code > method</p ></div ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >class</span > <a id="t:D" class="def" >D</a > a <span class="keyword" >where</span > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >This is a class declaration with no separate docs for the methods</p ></div ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a id="v:d" class="def" >d</a > :: <a href="#" title="Test" >T</a > a b <a href="#" class="selflink" >#</a ></p ><p class="src" ><a id="v:e" class="def" >e</a > :: (a, a) <a href="#" class="selflink" >#</a ></p ></div ><div class="subs instances" ><details id="i:D" open="open" ><summary >Instances</summary ><table ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:D:D:1" ></span > <a href="#" title="Test" >D</a > <a href="#" title="Prelude" >Float</a ></span > <a href="#" class="selflink" >#</a ></td ><td class="doc empty" ></td ></tr ><tr ><td colspan="2" ><details id="i:ic:D:D:1" ><summary class="hide-when-js-enabled" >Instance details</summary ><p >Defined in <a href="#" >Test</a ></p > <div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a href="#" >d</a > :: <a href="#" title="Test" >T</a > <a href="#" title="Prelude" >Float</a > b <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" >e</a > :: (<a href="#" title="Prelude" >Float</a >, <a href="#" title="Prelude" >Float</a >) <a href="#" class="selflink" >#</a ></p ></div ></details ></td ></tr ><tr ><td class="src clearfix" ><span class="inst-left" ><span class="instance details-toggle-control details-toggle" data-details-id="i:ic:D:D:2" ></span > <a href="#" title="Test" >D</a > <a href="#" title="Data.Int" >Int</a ></span > <a href="#" class="selflink" >#</a ></td ><td class="doc empty" ></td ></tr ><tr ><td colspan="2" ><details id="i:ic:D:D:2" ><summary class="hide-when-js-enabled" >Instance details</summary ><p >Defined in <a href="#" >Test</a ></p > <div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a href="#" >d</a > :: <a href="#" title="Test" >T</a > <a href="#" title="Data.Int" >Int</a > b <a href="#" class="selflink" >#</a ></p ><p class="src" ><a href="#" >e</a > :: (<a href="#" title="Data.Int" >Int</a >, <a href="#" title="Data.Int" >Int</a >) <a href="#" class="selflink" >#</a ></p ></div ></details ></td ></tr ></table ></details ></div ></div ><div class="top" ><p class="src" ><span class="keyword" >class</span > <a id="t:E" class="def" >E</a > a <a href="#" class="selflink" >#</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 id="t:F" class="def" >F</a > a <span class="keyword" >where</span > <a href="#" class="selflink" >#</a ></p ><div class="subs methods" ><p class="caption" >Methods</p ><p class="src" ><a id="v:ff" class="def" >ff</a > :: a <a href="#" class="selflink" >#</a ></p ></div ></div ><div class="doc" ><p >Test that we can export a class method on its own:</p ></div ><div class="top" ><p class="src" ><a id="v:a" class="def" >a</a > :: <a href="#" title="Test" >C</a > a => <a href="#" title="System.IO" >IO</a > a <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >this is a description of the <code ><a href="#" title="Test" >a</a ></code > method</p ></div ></div ><a href="#" id="g:5" ><h1 >Function types</h1 ></a ><div class="top" ><p class="src" ><a id="v:f" class="def" >f</a > :: <a href="#" title="Test" >C</a > a => a -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >In a comment string we can refer to identifiers in scope with single quotes like this: <code ><a href="#" title="Test" >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="#" title="Test" >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 id="v:g" class="def" >g</a > :: <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="System.IO" >IO</a > CInt <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >we can export foreign declarations too</p ></div ></div ><a href="#" id="g:6" ><h1 >Auxiliary stuff</h1 ></a ><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 ><a href="#" id="g:7" ><h1 >A hidden module</h1 ></a ><div class="top" ><p class="src" ><a id="v:hidden" class="def" >hidden</a > :: <a href="#" title="Data.Int" >Int</a > -> <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ></div ><a href="#" id="g:8" ><h1 >A visible module</h1 ></a ><div class="top" ><p class="src" >module <a href="#" >Visible</a ></p ></div ><div class="doc" ><p >nested-style doc comments </p ></div ><a href="#" id="g:9" ><h1 >Existential / Universal types</h1 ></a ><div class="top" ><p class="src" ><span class="keyword" >data</span > <a id="t:Ex" class="def" >Ex</a > a <a href="#" class="selflink" >#</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" ><a href="#" title="Test" >C</a > b => <a id="v:Ex1" class="def" >Ex1</a > b</td ><td class="doc empty" ></td ></tr ><tr ><td class="src" ><a id="v:Ex2" class="def" >Ex2</a > b</td ><td class="doc empty" ></td ></tr ><tr ><td class="src" ><a href="#" title="Test" >C</a > a => <a id="v:Ex3" class="def" >Ex3</a > b</td ><td class="doc empty" ></td ></tr ><tr ><td class="src" ><a id="v:Ex4" class="def" >Ex4</a > (<span class="keyword" >forall</span > a. a -> a)</td ><td class="doc empty" ></td ></tr ></table ></div ></div ><a href="#" id="g:10" ><h1 >Type signatures with argument docs</h1 ></a ><div class="top" ><p class="src" ><a id="v:k" class="def" >k</a > <a href="#" class="selflink" >#</a ></p ><div class="subs arguments" ><p class="caption" >Arguments</p ><table ><tr ><td class="src" >:: <a href="#" title="Test" >T</a > () ()</td ><td class="doc" ><p >This argument has type <code ><a href="#" title="Test" >T</a ></code ></p ></td ></tr ><tr ><td class="src" >-> <a href="#" title="Test" >T2</a > <a href="#" title="Data.Int" >Int</a > <a href="#" title="Data.Int" >Int</a ></td ><td class="doc" ><p >This argument has type 'T2 Int Int'</p ></td ></tr ><tr ><td class="src" >-> (<a href="#" title="Test" >T3</a > <a href="#" title="Data.Bool" >Bool</a > <a href="#" title="Data.Bool" >Bool</a > -> <a href="#" title="Test" >T4</a > <a href="#" title="Prelude" >Float</a > <a href="#" title="Prelude" >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="#" title="Test" >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="#" title="System.IO" >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 id="v:l" class="def" >l</a > <a href="#" class="selflink" >#</a ></p ><div class="subs arguments" ><p class="caption" >Arguments</p ><table ><tr ><td class="src" >:: (<a href="#" title="Data.Int" >Int</a >, <a href="#" title="Data.Int" >Int</a >, <a href="#" title="Prelude" >Float</a >)</td ><td class="doc" ><p >takes a triple</p ></td ></tr ><tr ><td class="src" >-> <a href="#" title="Data.Int" >Int</a ></td ><td class="doc" ><p >returns an <code ><a href="#" title="Data.Int" >Int</a ></code ></p ></td ></tr ></table ></div ></div ><div class="top" ><p class="src" ><a id="v:m" class="def" >m</a > <a href="#" class="selflink" >#</a ></p ><div class="subs arguments" ><p class="caption" >Arguments</p ><table ><tr ><td class="src" >:: <a href="#" title="Test" >R</a ></td ><td class="doc empty" ></td ></tr ><tr ><td class="src" >-> <a href="#" title="Test" >N1</a > ()</td ><td class="doc" ><p >one of the arguments</p ></td ></tr ><tr ><td class="src" >-> <a href="#" title="System.IO" >IO</a > <a href="#" title="Data.Int" >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 id="v:o" class="def" >o</a > <a href="#" class="selflink" >#</a ></p ><div class="subs arguments" ><p class="caption" >Arguments</p ><table ><tr ><td class="src" >:: <a href="#" title="Prelude" >Float</a ></td ><td class="doc" ><p >The input float</p ></td ></tr ><tr ><td class="src" >-> <a href="#" title="System.IO" >IO</a > <a href="#" title="Prelude" >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 ><a href="#" id="g:11" ><h1 >A section</h1 ></a ><a href="#" id="g:12" ><h2 >A subsection</h2 ></a ><div class="doc" ><pre >a literal line</pre ><p >$ a non <em >literal</em > line $</p ></div ><div class="top" ><p class="src" ><a id="v:f-39-" class="def" >f'</a > :: <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >a function with a prime can be referred to as <code ><a href="#" title="Test" >f'</a ></code > but f' doesn't get link'd 'f\''</p ></div ></div ><div class="top" ><p class="src" ><a id="v:withType" class="def" >withType</a > :: <a href="#" title="Data.Int" >Int</a > <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >Comment on a definition with type signature</p ></div ></div ><div class="top" ><p class="src" ><a id="v:withoutType" class="def" >withoutType</a > :: a <a href="#" class="selflink" >#</a ></p ><div class="doc" ><p >Comment on a definition without type signature</p ></div ></div ></div ></div ><div id="footer" ></div ></body ></html >