<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Test</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" ></TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Test</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >portable</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Type declarations </A ></DT ><DD ><DL ><DT ><A HREF="#2" >Data types </A ></DT ><DT ><A HREF="#3" >Records </A ></DT ></DL ></DD ><DT ><A HREF="#4" >Class declarations </A ></DT ><DT ><A HREF="#5" >Function types </A ></DT ><DT ><A HREF="#6" >Auxiliary stuff </A ></DT ><DT ><A HREF="#7" >A hidden module </A ></DT ><DT ><A HREF="#8" >A visible module </A ></DT ><DT ><A HREF="#9" >Existential / Universal types </A ></DT ><DT ><A HREF="#10" >Type signatures with argument docs </A ></DT ><DT ><A HREF="#11" >A section </A ></DT ><DD ><DL ><DT ><A HREF="#12" >A subsection </A ></DT ></DL ></DD ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >This module illustrates & tests most of the features of Haddock. Testing references from the description: <TT ><A HREF="Test.html#t%3AT" >T</A ></TT >, <TT ><A HREF="Test.html#v%3Af" >f</A ></TT >, <TT ><A HREF="Test.html#v%3Ag" >g</A ></TT >, <TT ><A HREF="Visible.html#v%3Avisible" >visible</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT" >T</A > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AA" >A</A > Int (Maybe Float)</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB" >B</A > (<A HREF="Test.html#t%3AT" >T</A > a b, <A HREF="Test.html#t%3AT" >T</A > Int Float)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT2" >T2</A > a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT3" >T3</A > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AA1" >A1</A > a</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB1" >B1</A > b</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT4" >T4</A > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AA2" >A2</A > a</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB2" >B2</A > b</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT5" >T5</A > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AA3" >A3</A > a</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB3" >B3</A > b</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AT6" >T6</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AA4" >A4</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AB4" >B4</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AC4" >C4</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN1" >N1</A > a = <A HREF="#v%3AN1" >N1</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN2" >N2</A > a b = <A HREF="#v%3AN2" >N2</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3An" >n</A > :: a b</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN3" >N3</A > a b = <A HREF="#v%3AN3" >N3</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3An3" >n3</A > :: a b</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AN4" >N4</A > a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN5" >N5</A > a b = <A HREF="#v%3AN5" >N5</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3An5" >n5</A > :: a b</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN6" >N6</A > a b = <A HREF="#v%3AN6" >N6</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3An6" >n6</A > :: a b</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A HREF="#t%3AN7" >N7</A > a b = <A HREF="#v%3AN7" >N7</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3An7" >n7</A > :: a b</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AR" >R</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3AC1" >C1</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3Ap" >p</A > :: Int</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Aq" >q</A > :: <SPAN CLASS="keyword" >forall</SPAN > a. a -> a</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Ar" >r</A > :: Int</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3As" >s</A > :: Int</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AC2" >C2</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3At" >t</A > :: T1 -> <A HREF="Test.html#t%3AT2" >T2</A > Int Int -> <A HREF="Test.html#t%3AT3" >T3</A > Bool Bool -> <A HREF="Test.html#t%3AT4" >T4</A > Float Float -> <A HREF="Test.html#t%3AT5" >T5</A > () ()</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Au" >u</A > :: Int</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3Av" >v</A > :: Int</TD ></TR ></TABLE >}</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AR1" >R1</A > = <A HREF="#v%3AC3" >C3</A > {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="recfield" ><A HREF="#v%3As1" >s1</A > :: Int</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3As2" >s2</A > :: Int</TD ></TR ><TR ><TD CLASS="recfield" ><A HREF="#v%3As3" >s3</A > :: Int</TD ></TR ></TABLE >}</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ap" >p</A > :: <A HREF="Test.html#t%3AR" >R</A > -> Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aq" >q</A > :: <A HREF="Test.html#t%3AR" >R</A > -> <SPAN CLASS="keyword" >forall</SPAN > a. a -> a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Au" >u</A > :: <A HREF="Test.html#t%3AR" >R</A > -> Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="Test.html#t%3AD" >D</A > a => <A HREF="#t%3AC" >C</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Aa" >a</A > :: IO a</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ab" >b</A > :: [a]</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3AD" >D</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Ad" >d</A > :: <A HREF="Test.html#t%3AT" >T</A > a b</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ae" >e</A > :: (a, a)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3AE" >E</A > a </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="#t%3AF" >F</A > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Aff" >ff</A > :: a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aa" >a</A > :: <A HREF="Test.html#t%3AC" >C</A > a => IO a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af" >f</A > :: <A HREF="Test.html#t%3AC" >C</A > a => a -> Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ag" >g</A > :: Int -> IO CInt</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ahidden" >hidden</A > :: Int -> Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Visible.html" >Visible</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AEx" >Ex</A > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <SPAN CLASS="keyword" >forall</SPAN > b . <A HREF="Test.html#t%3AC" >C</A > b => <A HREF="#v%3AEx1" >Ex1</A > b</TD ></TR ><TR ><TD CLASS="decl" >| <SPAN CLASS="keyword" >forall</SPAN > b . <A HREF="#v%3AEx2" >Ex2</A > b</TD ></TR ><TR ><TD CLASS="decl" >| <SPAN CLASS="keyword" >forall</SPAN > b . <A HREF="Test.html#t%3AC" >C</A > a => <A HREF="#v%3AEx3" >Ex3</A > b</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AEx4" >Ex4</A > (<SPAN CLASS="keyword" >forall</SPAN > a. a -> a)</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ak" >k</A > :: <A HREF="Test.html#t%3AT" >T</A > () () -> <A HREF="Test.html#t%3AT2" >T2</A > Int Int -> (<A HREF="Test.html#t%3AT3" >T3</A > Bool Bool -> <A HREF="Test.html#t%3AT4" >T4</A > Float Float) -> <A HREF="Test.html#t%3AT5" >T5</A > () () -> IO ()</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Al" >l</A > :: (Int, Int, Float) -> Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Am" >m</A > :: <A HREF="Test.html#t%3AR" >R</A > -> <A HREF="Test.html#t%3AN1" >N1</A > () -> IO Int</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Ao" >o</A > :: Float -> IO Float</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Af%27" >f'</A > :: Int</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" >Type declarations </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="2" >Data types </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT" ></A ><B >T</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >This comment applies to the <EM >following</EM > declaration and it continues until the next non-comment line </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AA" ></A ><B >A</B > Int (Maybe Float)</TD ><TD CLASS="rdoc" >This comment describes the <TT ><A HREF="Test.html#v%3AA" >A</A ></TT > constructor </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AB" ></A ><B >B</B > (<A HREF="Test.html#t%3AT" >T</A > a b, <A HREF="Test.html#t%3AT" >T</A > Int Float)</TD ><TD CLASS="rdoc" >This comment describes the <TT ><A HREF="Test.html#v%3AB" >B</A ></TT > constructor </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT2" ></A ><B >T2</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >An abstract data declaration </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT3" ></A ><B >T3</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A data declaration with no documentation annotations on the constructors </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AA1" ></A ><B >A1</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AB1" ></A ><B >B1</B > b</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT4" ></A ><B >T4</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AA2" ></A ><B >A2</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AB2" ></A ><B >B2</B > b</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT5" ></A ><B >T5</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AA3" ></A ><B >A3</B > a</TD ><TD CLASS="rdoc" >documents <TT ><A HREF="Test.html#v%3AA3" >A3</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AB3" ></A ><B >B3</B > b</TD ><TD CLASS="rdoc" >documents <TT ><A HREF="Test.html#v%3AB3" >B3</A ></TT > </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AT6" ></A ><B >T6</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Testing alternative comment styles </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AA4" ></A ><B >A4</B ></TD ><TD CLASS="rdoc" >This is the doc for <TT ><A HREF="Test.html#v%3AA4" >A4</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AB4" ></A ><B >B4</B ></TD ><TD CLASS="rdoc" >This is the doc for <TT ><A HREF="Test.html#v%3AB4" >B4</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AC4" ></A ><B >C4</B ></TD ><TD CLASS="rdoc" >This is the doc for <TT ><A HREF="Test.html#v%3AC4" >C4</A ></TT > </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN1" ></A ><B >N1</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A newtype </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN1" ></A ><B >N1</B > a</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN2" ></A ><B >N2</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A newtype with a fieldname </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN2" ></A ><B >N2</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3An" ></A ><B >n</B > :: a b</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN3" ></A ><B >N3</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A newtype with a fieldname, documentation on the field </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN3" ></A ><B >N3</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3An3" ></A ><B >n3</B > :: a b</TD ><TD CLASS="rdoc" >this is the <TT ><A HREF="Test.html#v%3An3" >n3</A ></TT > field </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AN4" ></A ><B >N4</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >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. </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN5" ></A ><B >N5</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN5" ></A ><B >N5</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3An5" ></A ><B >n5</B > :: a b</TD ><TD CLASS="rdoc" >no docs on the datatype or the constructor </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN6" ></A ><B >N6</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN6" ></A ><B >N6</B ></TD ><TD CLASS="rdoc" >docs on the constructor only </TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3An6" ></A ><B >n6</B > :: a b</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >newtype</SPAN > <A NAME="t%3AN7" ></A ><B >N7</B > a b </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >docs on the newtype and the constructor </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AN7" ></A ><B >N7</B ></TD ><TD CLASS="rdoc" >The <TT ><A HREF="Test.html#t%3AN7" >N7</A ></TT > constructor </TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3An7" ></A ><B >n7</B > :: a b</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="3" >Records </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AR" ></A ><B >R</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >This is the documentation for the <TT ><A HREF="Test.html#t%3AR" >R</A ></TT > record, which has four fields, <TT ><A HREF="Test.html#v%3Ap" >p</A ></TT >, <TT ><A HREF="Test.html#v%3Aq" >q</A ></TT >, <TT ><A HREF="Test.html#v%3Ar" >r</A ></TT >, and <TT ><A HREF="Test.html#v%3As" >s</A ></TT >. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AC1" ></A ><B >C1</B ></TD ><TD CLASS="rdoc" >This is the <TT ><A HREF="Test.html#v%3AC1" >C1</A ></TT > record constructor, with the following fields: </TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3Ap" ></A ><B >p</B > :: Int</TD ><TD CLASS="rdoc" >This comment applies to the <TT ><A HREF="Test.html#v%3Ap" >p</A ></TT > field </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3Aq" ></A ><B >q</B > :: <SPAN CLASS="keyword" >forall</SPAN > a. a -> a</TD ><TD CLASS="rdoc" >This comment applies to the <TT ><A HREF="Test.html#v%3Aq" >q</A ></TT > field </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3Ar" ></A ><B >r</B > :: Int</TD ><TD CLASS="rdoc" >This comment applies to both <TT ><A HREF="Test.html#v%3Ar" >r</A ></TT > and <TT ><A HREF="Test.html#v%3As" >s</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3As" ></A ><B >s</B > :: Int</TD ><TD CLASS="rdoc" >This comment applies to both <TT ><A HREF="Test.html#v%3Ar" >r</A ></TT > and <TT ><A HREF="Test.html#v%3As" >s</A ></TT > </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AC2" ></A ><B >C2</B ></TD ><TD CLASS="rdoc" >This is the <TT ><A HREF="Test.html#v%3AC2" >C2</A ></TT > record constructor, also with some fields: </TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3At" ></A ><B >t</B > :: T1 -> <A HREF="Test.html#t%3AT2" >T2</A > Int Int -> <A HREF="Test.html#t%3AT3" >T3</A > Bool Bool -> <A HREF="Test.html#t%3AT4" >T4</A > Float Float -> <A HREF="Test.html#t%3AT5" >T5</A > () ()</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3Au" ></A ><B >u</B > :: Int</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3Av" ></A ><B >v</B > :: Int</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AR1" ></A ><B >R1</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Testing different record commenting styles </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3AC3" ></A ><B >C3</B ></TD ><TD CLASS="rdoc" >This is the <TT ><A HREF="Test.html#v%3AC3" >C3</A ></TT > record constructor </TD ></TR ><TR ><TD CLASS="body" COLSPAN="2" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3As1" ></A ><B >s1</B > :: Int</TD ><TD CLASS="rdoc" >The <TT ><A HREF="Test.html#v%3As1" >s1</A ></TT > record selector </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3As2" ></A ><B >s2</B > :: Int</TD ><TD CLASS="rdoc" >The <TT ><A HREF="Test.html#v%3As2" >s2</A ></TT > record selector </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3As3" ></A ><B >s3</B > :: Int</TD ><TD CLASS="rdoc" >The <TT ><A HREF="Test.html#v%3As3" >s3</A ></TT > record selector </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >test that we can export record selectors on their own: </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ap" ></A ><B >p</B > :: <A HREF="Test.html#t%3AR" >R</A > -> Int</TD ></TR ><TR ><TD CLASS="doc" >This comment applies to the <TT ><A HREF="Test.html#v%3Ap" >p</A ></TT > field </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aq" ></A ><B >q</B > :: <A HREF="Test.html#t%3AR" >R</A > -> <SPAN CLASS="keyword" >forall</SPAN > a. a -> a</TD ></TR ><TR ><TD CLASS="doc" >This comment applies to the <TT ><A HREF="Test.html#v%3Aq" >q</A ></TT > field </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Au" ></A ><B >u</B > :: <A HREF="Test.html#t%3AR" >R</A > -> Int</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" >Class declarations </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A HREF="Test.html#t%3AD" >D</A > a => <A NAME="t%3AC" ></A ><B >C</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >This comment applies to the <EM >previous</EM > declaration (the <TT ><A HREF="Test.html#t%3AC" >C</A ></TT > class) </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v%3Aa" ></A ><B >a</B > :: IO a</TD ></TR ><TR ><TD CLASS="doc" >this is a description of the <TT ><A HREF="Test.html#v%3Aa" >a</A ></TT > method </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ab" ></A ><B >b</B > :: [a]</TD ></TR ><TR ><TD CLASS="doc" >this is a description of the <TT ><A HREF="Test.html#v%3Ab" >b</A ></TT > method </TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t%3AD" ></A ><B >D</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >This is a class declaration with no separate docs for the methods </TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v%3Ad" ></A ><B >d</B > :: <A HREF="Test.html#t%3AT" >T</A > a b</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ae" ></A ><B >e</B > :: (a, a)</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:D')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:D" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Test.html#t%3AD" >D</A > Float</TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Test.html#t%3AD" >D</A > Int</TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t%3AE" ></A ><B >E</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >This is a class declaration with no methods (or no methods exported) </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >class</SPAN > <A NAME="t%3AF" ></A ><B >F</B > a <SPAN CLASS="keyword" >where</SPAN ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="section4" >Methods</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A NAME="v%3Aff" ></A ><B >ff</B > :: a</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >Test that we can export a class method on its own: </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Aa" ></A ><B >a</B > :: <A HREF="Test.html#t%3AC" >C</A > a => IO a</TD ></TR ><TR ><TD CLASS="doc" >this is a description of the <TT ><A HREF="Test.html#v%3Aa" >a</A ></TT > method </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="5" >Function types </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Af" ></A ><B >f</B > :: <A HREF="Test.html#t%3AC" >C</A > a => a -> Int</TD ></TR ><TR ><TD CLASS="doc" ><P >In a comment string we can refer to identifiers in scope with single quotes like this: <TT ><A HREF="Test.html#t%3AT" >T</A ></TT >, and we can refer to modules by using double quotes: <A HREF="Foo.html" >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 ></OL ><P >2. This is the next item (different kind of bullet) </P ><PRE > This is a block of code, which can include other markup: <TT ><A HREF="Test.html#t%3AR" >R</A ></TT > 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/" >http://www.haskell.org/</A >. </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ag" ></A ><B >g</B > :: Int -> IO CInt</TD ></TR ><TR ><TD CLASS="doc" >we can export foreign declarations too </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="6" >Auxiliary stuff </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD 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 ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >This is some documentation that is attached to a name ($aux2) </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > code block on its own in named doc</PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > code block on its own in named doc (after newline)</PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><P >a nested, named doc comment </P ><P >with a paragraph, </P ><PRE > and a code block</PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE >test test1 </PRE ><PRE > test2 test3 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > test1 test2 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE >test3 test4 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > test1 test2 </PRE ><PRE >test3 test4 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE >test3 test4 </PRE ><PRE > test1 test2 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><P >aux11: </P ><PRE >test3 test4 </PRE ><PRE > test1 test2 </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > foo </PRE ><PRE > bar </PRE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD 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 ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="7" >A hidden module </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ahidden" ></A ><B >hidden</B > :: Int -> Int</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="8" >A visible module </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" >module <A HREF="Visible.html" >Visible</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >nested-style doc comments </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="9" >Existential / Universal types </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3AEx" ></A ><B >Ex</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >A data-type using existential/universal types </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><SPAN CLASS="keyword" >forall</SPAN > b . <A HREF="Test.html#t%3AC" >C</A > b => <A NAME="v%3AEx1" ></A ><B >Ex1</B > b</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><SPAN CLASS="keyword" >forall</SPAN > b . <A NAME="v%3AEx2" ></A ><B >Ex2</B > b</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><SPAN CLASS="keyword" >forall</SPAN > b . <A HREF="Test.html#t%3AC" >C</A > a => <A NAME="v%3AEx3" ></A ><B >Ex3</B > b</TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AEx4" ></A ><B >Ex4</B > (<SPAN CLASS="keyword" >forall</SPAN > a. a -> a)</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="10" >Type signatures with argument docs </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ak" ></A ><B >k</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="Test.html#t%3AT" >T</A > () ()</TD ><TD CLASS="rdoc" >This argument has type <TT ><A HREF="Test.html#t%3AT" >T</A ></TT > </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Test.html#t%3AT2" >T2</A > Int Int</TD ><TD CLASS="rdoc" >This argument has type 'T2 Int Int' </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Test.html#t%3AT3" >T3</A > Bool Bool -> <A HREF="Test.html#t%3AT4" >T4</A > Float Float</TD ><TD CLASS="rdoc" >This argument has type <TT >T3 Bool Bool -> T4 Float Float</TT > </TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Test.html#t%3AT5" >T5</A > () ()</TD ><TD CLASS="rdoc" >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. </TD ></TR ><TR ><TD CLASS="arg" >-> IO ()</TD ><TD CLASS="rdoc" >This is the result type </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >This is a function with documentation for each argument </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Al" ></A ><B >l</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: (Int, Int, Float)</TD ><TD CLASS="rdoc" >takes a triple </TD ></TR ><TR ><TD CLASS="arg" >-> Int</TD ><TD CLASS="rdoc" >returns an <TT >Int</TT > </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Am" ></A ><B >m</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: <A HREF="Test.html#t%3AR" >R</A ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" >-> <A HREF="Test.html#t%3AN1" >N1</A > ()</TD ><TD CLASS="rdoc" >one of the arguments </TD ></TR ><TR ><TD CLASS="arg" >-> IO Int</TD ><TD CLASS="rdoc" >and the return value </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >This function has some arg docs </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Ao" ></A ><B >o</B ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="arg" >:: Float</TD ><TD CLASS="rdoc" >The input float </TD ></TR ><TR ><TD CLASS="arg" >-> IO Float</TD ><TD CLASS="rdoc" >The output float </TD ></TR ><TR ><TD CLASS="ndoc" COLSPAN="2" >A foreign import with argument docs </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="11" >A section </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section2" ><A NAME="12" >A subsection </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" ><PRE > a literal line </PRE ><P >$ a non <EM >literal</EM > line $ </P ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3Af%27" ></A ><B >f'</B > :: Int</TD ></TR ><TR ><TD CLASS="doc" >a function with a prime can be referred to as <TT ><A HREF="Test.html#v%3Af%27" >f'</A ></TT > but f' doesn't get link'd 'f\'' </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.2.2</TD ></TR ></TABLE ></BODY ></HTML >