Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1f2b142b9d2ef4849a6f5316fa1c5b12 > files > 1413

ghc-6.10.4-1mdv2010.0.i586.rpm

<!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
>Prelude</TITLE
><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css"
><SCRIPT SRC="haddock-util.js" TYPE="text/javascript"
></SCRIPT
><SCRIPT TYPE="text/javascript"
>window.onload = function () {setSynopsis("mini_Prelude.html")};</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"
>base-4.1.0.0: Basic libraries</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"
>Prelude</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"
>stable</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"
>Standard types, classes and related functions
</A
></DT
><DD
><DL
><DT
><A HREF="#2"
>Basic data types
</A
></DT
><DD
><DL
><DT
><A HREF="#3"
>Tuples
</A
></DT
></DL
></DD
><DT
><A HREF="#4"
>Basic type classes
</A
></DT
><DT
><A HREF="#5"
>Numbers
</A
></DT
><DD
><DL
><DT
><A HREF="#6"
>Numeric types
</A
></DT
><DT
><A HREF="#7"
>Numeric type classes
</A
></DT
><DT
><A HREF="#8"
>Numeric functions
</A
></DT
></DL
></DD
><DT
><A HREF="#9"
>Monads and functors
</A
></DT
><DT
><A HREF="#10"
>Miscellaneous functions
</A
></DT
></DL
></DD
><DT
><A HREF="#11"
>List operations
</A
></DT
><DD
><DL
><DT
><A HREF="#12"
>Reducing lists (folds)
</A
></DT
><DD
><DL
><DT
><A HREF="#13"
>Special folds
</A
></DT
></DL
></DD
><DT
><A HREF="#14"
>Building lists
</A
></DT
><DD
><DL
><DT
><A HREF="#15"
>Scans
</A
></DT
><DT
><A HREF="#16"
>Infinite lists
</A
></DT
></DL
></DD
><DT
><A HREF="#17"
>Sublists
</A
></DT
><DT
><A HREF="#18"
>Searching lists
</A
></DT
><DT
><A HREF="#19"
>Zipping and unzipping lists
</A
></DT
><DT
><A HREF="#20"
>Functions on strings
</A
></DT
></DL
></DD
><DT
><A HREF="#21"
>Converting to and from <TT
>String</TT
>
</A
></DT
><DD
><DL
><DT
><A HREF="#22"
>Converting to <TT
>String</TT
>
</A
></DT
><DT
><A HREF="#23"
>Converting from <TT
>String</TT
>
</A
></DT
></DL
></DD
><DT
><A HREF="#24"
>Basic Input and output
</A
></DT
><DD
><DL
><DT
><A HREF="#25"
>Simple I/O operations
</A
></DT
><DD
><DL
><DT
><A HREF="#26"
>Output functions
</A
></DT
><DT
><A HREF="#27"
>Input functions
</A
></DT
><DT
><A HREF="#28"
>Files
</A
></DT
></DL
></DD
><DT
><A HREF="#29"
>Exception handling in the I/O monad
</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"
>The Prelude: a standard module imported by default into all Haskell
 modules.  For more documentation, see the Haskell 98 Report
 <A HREF="http://www.haskell.org/onlinereport/"
>http://www.haskell.org/onlinereport/</A
>.
</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"
><A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> (<A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
>, <A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%26%26"
>(&amp;&amp;)</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%7C%7C"
>(||)</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Anot"
>not</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aotherwise"
>otherwise</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</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%3AMaybe"
>Maybe</A
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ANothing"
>Nothing</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AJust"
>Just</A
> a</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amaybe"
>maybe</A
> ::  b -&gt; (a -&gt; b) -&gt; <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a -&gt; 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%3AEither"
>Either</A
> a b </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3ALeft"
>Left</A
> a</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ARight"
>Right</A
> b</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aeither"
>either</A
> ::  (a -&gt; c) -&gt; (b -&gt; c) -&gt; <A HREF="Prelude.html#t%3AEither"
>Either</A
> a b -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
> (<A HREF="../ghc-prim/GHC-Ordering.html#v%3ALT"
>LT</A
>, <A HREF="../ghc-prim/GHC-Ordering.html#v%3AEQ"
>EQ</A
>, <A HREF="../ghc-prim/GHC-Ordering.html#v%3AGT"
>GT</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AC%23"
>C#</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AString"
>String</A
> = [<A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afst"
>fst</A
> ::  (a, b) -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asnd"
>snd</A
> ::  (a, b) -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acurry"
>curry</A
> ::  ((a, b) -&gt; c) -&gt; a -&gt; b -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Auncurry"
>uncurry</A
> ::  (a -&gt; b -&gt; c) -&gt; (a, b) -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AEq"
>Eq</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%3A%3D%3D"
>(==)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2F%3D"
>(/=)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="#t%3AOrd"
>Ord</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%3Acompare"
>compare</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C"
>(&lt;)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3E%3D"
>(&gt;=)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3E"
>(&gt;)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3C%3D"
>(&lt;=)</A
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amax"
>max</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amin"
>min</A
> :: a -&gt; a -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AEnum"
>Enum</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%3Asucc"
>succ</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Apred"
>pred</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoEnum"
>toEnum</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromEnum"
>fromEnum</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AenumFrom"
>enumFrom</A
> :: a -&gt; [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AenumFromThen"
>enumFromThen</A
> :: a -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AenumFromTo"
>enumFromTo</A
> :: a -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AenumFromThenTo"
>enumFromThenTo</A
> :: a -&gt; a -&gt; a -&gt; [a]</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ABounded"
>Bounded</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%3AminBound"
>minBound</A
> :: a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmaxBound"
>maxBound</A
> :: a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AI%23"
>I#</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> (S#, J#)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AF%23"
>F#</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AD%23"
>D#</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3ARational"
>Rational</A
> = <A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> a) =&gt; <A HREF="#t%3ANum"
>Num</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%3A%2B"
>(+)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2A"
>(*)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A-"
>(-)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Anegate"
>negate</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aabs"
>abs</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asignum"
>signum</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromInteger"
>fromInteger</A
> :: <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3ANum"
>Num</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a) =&gt; <A HREF="#t%3AReal"
>Real</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%3AtoRational"
>toRational</A
> :: a -&gt; <A HREF="Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AEnum"
>Enum</A
> a) =&gt; <A HREF="#t%3AIntegral"
>Integral</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%3Aquot"
>quot</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Arem"
>rem</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adiv"
>div</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amod"
>mod</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AquotRem"
>quotRem</A
> :: a -&gt; a -&gt; (a, a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdivMod"
>divMod</A
> :: a -&gt; a -&gt; (a, a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtoInteger"
>toInteger</A
> :: a -&gt; <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A HREF="#t%3AFractional"
>Fractional</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%3A%2F"
>(/)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Arecip"
>recip</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromRational"
>fromRational</A
> :: <A HREF="Prelude.html#t%3ARational"
>Rational</A
> -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a =&gt; <A HREF="#t%3AFloating"
>Floating</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%3Api"
>pi</A
> :: a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aexp"
>exp</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asqrt"
>sqrt</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alog"
>log</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2A%2A"
>(**)</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AlogBase"
>logBase</A
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asin"
>sin</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atan"
>tan</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acos"
>cos</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aasin"
>asin</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aatan"
>atan</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aacos"
>acos</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asinh"
>sinh</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atanh"
>tanh</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acosh"
>cosh</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aasinh"
>asinh</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aatanh"
>atanh</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aacosh"
>acosh</A
> :: a -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a) =&gt; <A HREF="#t%3ARealFrac"
>RealFrac</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%3AproperFraction"
>properFraction</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; (b, a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atruncate"
>truncate</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Around"
>round</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aceiling"
>ceiling</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afloor"
>floor</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> a, <A HREF="Prelude.html#t%3AFloating"
>Floating</A
> a) =&gt; <A HREF="#t%3ARealFloat"
>RealFloat</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%3AfloatRadix"
>floatRadix</A
> :: a -&gt; <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfloatDigits"
>floatDigits</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfloatRange"
>floatRange</A
> :: a -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdecodeFloat"
>decodeFloat</A
> :: a -&gt; (<A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AencodeFloat"
>encodeFloat</A
> :: <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aexponent"
>exponent</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asignificand"
>significand</A
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AscaleFloat"
>scaleFloat</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisNaN"
>isNaN</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisInfinite"
>isInfinite</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisDenormalized"
>isDenormalized</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisNegativeZero"
>isNegativeZero</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AisIEEE"
>isIEEE</A
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aatan2"
>atan2</A
> :: a -&gt; a -&gt; a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asubtract"
>subtract</A
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aeven"
>even</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aodd"
>odd</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Agcd"
>gcd</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alcm"
>lcm</A
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%5E"
>(^)</A
> :: (<A HREF="Prelude.html#t%3ANum"
>Num</A
> a, <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b) =&gt; a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%5E%5E"
>(^^)</A
> :: (<A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a, <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b) =&gt; a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AfromIntegral"
>fromIntegral</A
> :: (<A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a, <A HREF="Prelude.html#t%3ANum"
>Num</A
> b) =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3ArealToFrac"
>realToFrac</A
> :: (<A HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> b) =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AMonad"
>Monad</A
> m  <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%3A%3E%3E%3D"
>(&gt;&gt;=)</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b.  m a -&gt; (a -&gt; m b) -&gt; m b</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3E%3E"
>(&gt;&gt;)</A
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b.  m a -&gt; m b -&gt; m b</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Areturn"
>return</A
> ::  a -&gt; m a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afail"
>fail</A
> ::  <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; m a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AFunctor"
>Functor</A
> f  <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%3Afmap"
>fmap</A
> ::  (a -&gt; b) -&gt; f a -&gt; f b</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmapM"
>mapM</A
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m [b]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AmapM_"
>mapM_</A
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asequence"
>sequence</A
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; [m a] -&gt; m [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asequence_"
>sequence_</A
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; [m a] -&gt; m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%3D%3C%3C"
>(=&lt;&lt;)</A
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; m a -&gt; m b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aid"
>id</A
> ::  a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aconst"
>const</A
> ::  a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A."
>(.)</A
> ::  (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aflip"
>flip</A
> ::  (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%24"
>($)</A
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Auntil"
>until</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; (a -&gt; a) -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AasTypeOf"
>asTypeOf</A
> ::  a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aerror"
>error</A
> ::  [<A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
>] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aundefined"
>undefined</A
> ::  a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Prim.html#v%3Aseq"
>seq</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%24%21"
>($!)</A
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amap"
>map</A
> ::  (a -&gt; b) -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%2B%2B"
>(++)</A
> ::  [a] -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afilter"
>filter</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ahead"
>head</A
> ::  [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alast"
>last</A
> ::  [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atail"
>tail</A
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ainit"
>init</A
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Anull"
>null</A
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alength"
>length</A
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3A%21%21"
>(!!)</A
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Areverse"
>reverse</A
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afoldl"
>foldl</A
> ::  (a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afoldl1"
>foldl1</A
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afoldr"
>foldr</A
> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afoldr1"
>foldr1</A
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aand"
>and</A
> :: [<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aor"
>or</A
> :: [<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aany"
>any</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aall"
>all</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asum"
>sum</A
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aproduct"
>product</A
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aconcat"
>concat</A
> ::  [[a]] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AconcatMap"
>concatMap</A
> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amaximum"
>maximum</A
> :: <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aminimum"
>minimum</A
> :: <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanl"
>scanl</A
> ::  (a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanl1"
>scanl1</A
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanr"
>scanr</A
> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ascanr1"
>scanr1</A
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aiterate"
>iterate</A
> ::  (a -&gt; a) -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Arepeat"
>repeat</A
> ::  a -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Areplicate"
>replicate</A
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acycle"
>cycle</A
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atake"
>take</A
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adrop"
>drop</A
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsplitAt"
>splitAt</A
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtakeWhile"
>takeWhile</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdropWhile"
>dropWhile</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aspan"
>span</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Abreak"
>break</A
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aelem"
>elem</A
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AnotElem"
>notElem</A
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alookup"
>lookup</A
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [(a, b)] -&gt; <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip"
>zip</A
> ::  [a] -&gt; [b] -&gt; [(a, b)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Azip3"
>zip3</A
> ::  [a] -&gt; [b] -&gt; [c] -&gt; [(a, b, c)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith"
>zipWith</A
> ::  (a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AzipWith3"
>zipWith3</A
> ::  (a -&gt; b -&gt; c -&gt; d) -&gt; [a] -&gt; [b] -&gt; [c] -&gt; [d]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip"
>unzip</A
> ::  [(a, b)] -&gt; ([a], [b])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunzip3"
>unzip3</A
> ::  [(a, b, c)] -&gt; ([a], [b], [c])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alines"
>lines</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [<A HREF="Prelude.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Awords"
>words</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [<A HREF="Prelude.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunlines"
>unlines</A
> :: [<A HREF="Prelude.html#t%3AString"
>String</A
>] -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunwords"
>unwords</A
> :: [<A HREF="Prelude.html#t%3AString"
>String</A
>] -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AShowS"
>ShowS</A
> = <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3AShow"
>Show</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%3AshowsPrec"
>showsPrec</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ashow"
>show</A
> :: a -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowList"
>showList</A
> :: [a] -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ashows"
>shows</A
> :: <A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; a -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowChar"
>showChar</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowString"
>showString</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AshowParen"
>showParen</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AReadS"
>ReadS</A
> a = <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [(a, <A HREF="Prelude.html#t%3AString"
>String</A
>)]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A HREF="#t%3ARead"
>Read</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%3AreadsPrec"
>readsPrec</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadList"
>readList</A
> :: <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> [a]</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Areads"
>reads</A
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadParen"
>readParen</A
> ::  <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a -&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aread"
>read</A
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alex"
>lex</A
> :: <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AputChar"
>putChar</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AputStr"
>putStr</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AputStrLn"
>putStrLn</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aprint"
>print</A
> :: <A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; a -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetChar"
>getChar</A
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetLine"
>getLine</A
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AgetContents"
>getContents</A
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ainteract"
>interact</A
> :: (<A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
>) -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AFilePath"
>FilePath</A
> = <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadFile"
>readFile</A
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AwriteFile"
>writeFile</A
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AappendFile"
>appendFile</A
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadIO"
>readIO</A
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AreadLn"
>readLn</A
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AIOError"
>IOError</A
> = <A HREF="Control-Exception-Base.html#t%3AIOException"
>IOException</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AioError"
>ioError</A
> ::  <A HREF="Prelude.html#t%3AIOError"
>IOError</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AuserError"
>userError</A
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acatch"
>catch</A
> ::  <A HREF="Prelude.html#t%3AIO"
>IO</A
> a -&gt; (<A HREF="Prelude.html#t%3AIOError"
>IOError</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Standard types, classes and related functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="2"
><A NAME="2"
>Basic data types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> (<A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
>, <A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:&&"
><A NAME="v%3A%26%26"
></A
></A
><B
>(&amp;&amp;)</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Boolean &quot;and&quot;
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:||"
><A NAME="v%3A%7C%7C"
></A
></A
><B
>(||)</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Boolean &quot;or&quot;
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:not"
><A NAME="v%3Anot"
></A
></A
><B
>not</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Boolean &quot;not&quot;
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:otherwise"
><A NAME="v%3Aotherwise"
></A
></A
><B
>otherwise</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Aotherwise"
>otherwise</A
></TT
> is defined as the value <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
>.  It helps to make
 guards more readable.  eg.
</P
><PRE
>  f x | x &lt; 0     = ...
      | otherwise = ...
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Maybe"
><A NAME="t%3AMaybe"
></A
></A
><B
>Maybe</B
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
> type encapsulates an optional value.  A value of type
 <TT
><TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
> a</TT
> either contains a value of type <TT
>a</TT
> (represented as <TT
><TT
><A HREF="Prelude.html#v%3AJust"
>Just</A
></TT
> a</TT
>), 
 or it is empty (represented as <TT
><A HREF="Prelude.html#v%3ANothing"
>Nothing</A
></TT
>).  Using <TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
> is a good way to 
 deal with errors or exceptional cases without resorting to drastic
 measures such as <TT
><A HREF="Prelude.html#v%3Aerror"
>error</A
></TT
>.
</P
><P
>The <TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
> type is also a monad.  It is a simple kind of error
 monad, where all errors are represented by <TT
><A HREF="Prelude.html#v%3ANothing"
>Nothing</A
></TT
>.  A richer
 error monad can be built using the Data.Either.Either type.
</P
></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:Nothing"
><A NAME="v%3ANothing"
></A
></A
><B
>Nothing</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Just"
><A NAME="v%3AJust"
></A
></A
><B
>Just</B
> a</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Maybe')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Maybe" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad-Fix.html#t%3AMonadFix"
>MonadFix</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad.html#t%3AMonadPlus"
>MonadPlus</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AAlternative"
>Alternative</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Foldable.html#t%3AFoldable"
>Foldable</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Traversable.html#t%3ATraversable"
>Traversable</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Data.html#t%3AData"
>Data</A
> a =&gt; <A HREF="Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Monoid.html#t%3AMonoid"
>Monoid</A
> a =&gt; <A HREF="Data-Monoid.html#t%3AMonoid"
>Monoid</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:maybe"
><A NAME="v%3Amaybe"
></A
></A
><B
>maybe</B
> ::  b -&gt; (a -&gt; b) -&gt; <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Amaybe"
>maybe</A
></TT
> function takes a default value, a function, and a <TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
>
 value.  If the <TT
><A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TT
> value is <TT
><A HREF="Prelude.html#v%3ANothing"
>Nothing</A
></TT
>, the function returns the
 default value.  Otherwise, it applies the function to the value inside
 the <TT
><A HREF="Prelude.html#v%3AJust"
>Just</A
></TT
> and returns the result.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:Either"
><A NAME="t%3AEither"
></A
></A
><B
>Either</B
> a b </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AEither"
>Either</A
></TT
> type represents values with two possibilities: a value of
type <TT
><TT
><A HREF="Prelude.html#t%3AEither"
>Either</A
></TT
> a b</TT
> is either <TT
><TT
><A HREF="Prelude.html#v%3ALeft"
>Left</A
></TT
> a</TT
> or <TT
><TT
><A HREF="Prelude.html#v%3ARight"
>Right</A
></TT
> b</TT
>.
</P
><P
>The <TT
><A HREF="Prelude.html#t%3AEither"
>Either</A
></TT
> type is sometimes used to represent a value which is
either correct or an error; by convention, the <TT
><A HREF="Prelude.html#v%3ALeft"
>Left</A
></TT
> constructor is
used to hold an error value and the <TT
><A HREF="Prelude.html#v%3ARight"
>Right</A
></TT
> constructor is used to
hold a correct value (mnemonic: &quot;right&quot; also means &quot;correct&quot;).
</P
></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:Left"
><A NAME="v%3ALeft"
></A
></A
><B
>Left</B
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Right"
><A NAME="v%3ARight"
></A
></A
><B
>Right</B
> b</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Either')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Either" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable2"
>Typeable2</A
> <A HREF="Prelude.html#t%3AEither"
>Either</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Data-Data.html#t%3AData"
>Data</A
> a, <A HREF="Data-Data.html#t%3AData"
>Data</A
> b) =&gt; <A HREF="Data-Data.html#t%3AData"
>Data</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:either"
><A NAME="v%3Aeither"
></A
></A
><B
>either</B
> ::  (a -&gt; c) -&gt; (b -&gt; c) -&gt; <A HREF="Prelude.html#t%3AEither"
>Either</A
> a b -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
>Case analysis for the <TT
><A HREF="Prelude.html#t%3AEither"
>Either</A
></TT
> type.
 If the value is <TT
><TT
><A HREF="Prelude.html#v%3ALeft"
>Left</A
></TT
> a</TT
>, apply the first function to <TT
>a</TT
>;
 if it is <TT
><TT
><A HREF="Prelude.html#v%3ARight"
>Right</A
></TT
> b</TT
>, apply the second function to <TT
>b</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
> (<A HREF="../ghc-prim/GHC-Ordering.html#v%3ALT"
>LT</A
>, <A HREF="../ghc-prim/GHC-Ordering.html#v%3AEQ"
>EQ</A
>, <A HREF="../ghc-prim/GHC-Ordering.html#v%3AGT"
>GT</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AC%23"
>C#</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:String"
><A NAME="t%3AString"
></A
></A
><B
>String</B
> = [<A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
>]</TD
></TR
><TR
><TD CLASS="doc"
>A <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> is a list of characters.  String constants in Haskell are values
 of type <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="3"
><A NAME="3"
>Tuples
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fst"
><A NAME="v%3Afst"
></A
></A
><B
>fst</B
> ::  (a, b) -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Extract the first component of a pair.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:snd"
><A NAME="v%3Asnd"
></A
></A
><B
>snd</B
> ::  (a, b) -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
>Extract the second component of a pair.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:curry"
><A NAME="v%3Acurry"
></A
></A
><B
>curry</B
> ::  ((a, b) -&gt; c) -&gt; a -&gt; b -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Acurry"
>curry</A
></TT
> converts an uncurried function to a curried function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:uncurry"
><A NAME="v%3Auncurry"
></A
></A
><B
>uncurry</B
> ::  (a -&gt; b -&gt; c) -&gt; (a, b) -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Auncurry"
>uncurry</A
></TT
> converts a curried function to a function on pairs.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="4"
><A NAME="4"
>Basic type classes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Eq"
><A NAME="t%3AEq"
></A
></A
><B
>Eq</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AEq"
>Eq</A
></TT
> class defines equality (<TT
><A HREF="Prelude.html#v%3A%3D%3D"
>==</A
></TT
>) and inequality (<TT
><A HREF="Prelude.html#v%3A%2F%3D"
>/=</A
></TT
>).
 All the basic datatypes exported by the <A HREF="Prelude.html"
>Prelude</A
> are instances of <TT
><A HREF="Prelude.html#t%3AEq"
>Eq</A
></TT
>,
 and <TT
><A HREF="Prelude.html#t%3AEq"
>Eq</A
></TT
> may be derived for any datatype whose constituents are also
 instances of <TT
><A HREF="Prelude.html#t%3AEq"
>Eq</A
></TT
>.
</P
><P
>Minimal complete definition: either <TT
><A HREF="Prelude.html#v%3A%3D%3D"
>==</A
></TT
> or <TT
><A HREF="Prelude.html#v%3A%2F%3D"
>/=</A
></TT
>.
</P
></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:=="
><A NAME="v%3A%3D%3D"
></A
></A
><B
>(==)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:/="
><A NAME="v%3A%2F%3D"
></A
></A
><B
>(/=)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</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:Eq')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Eq" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-Exception-Base.html#t%3AArithException"
>ArithException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Text-Read-Lex.html#t%3ALexeme"
>Lexeme</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO-Error.html#t%3AIOErrorType"
>IOErrorType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-Exception-Base.html#t%3AIOException"
>IOException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Exit.html#t%3AExitCode"
>ExitCode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-Exception-Base.html#t%3AArrayException"
>ArrayException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-Exception-Base.html#t%3AAsyncException"
>AsyncException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO.html#t%3ABufferMode"
>BufferMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> BufferState</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO.html#t%3AHandle"
>Handle</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> Inserts</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> HashData</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> KeyPr</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> Key</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> Finalizers</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Foreign-C-Error.html#t%3AErrno"
>Errno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> FDType</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="GHC-Conc.html#t%3AThreadStatus"
>ThreadStatus</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="GHC-Conc.html#t%3ABlockReason"
>BlockReason</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-Concurrent.html#t%3AThreadId"
>ThreadId</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="System-IO.html#t%3AHandlePosn"
>HandlePosn</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Control-OldException.html#t%3AException"
>Exception</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Data.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Data.html#t%3AConstrRep"
>ConstrRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Data.html#t%3ADataRep"
>DataRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Data.html#t%3AConstr"
>Constr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Monoid.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Monoid.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> Timeout</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> <A HREF="Data-Version.html#t%3AVersion"
>Version</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> ([] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Foreign-StablePtr.html#t%3AStablePtr"
>StablePtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Foreign-Ptr.html#t%3AFunPtr"
>FunPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> ([::] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-IORef.html#t%3AIORef"
>IORef</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Control-Concurrent-MVar.html#t%3AMVar"
>MVar</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Conc.html#t%3ATVar"
>TVar</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Exts.html#t%3ADown"
>Down</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Monoid.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Monoid.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-Monoid.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="System-Mem-StableName.html#t%3AStableName"
>StableName</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="Data-STRef.html#t%3ASTRef"
>STRef</A
> s a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (IOArray i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a b c)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="GHC-Arr.html#t%3ASTArray"
>STArray</A
> s i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a b c d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a b c d e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
> a b c d e f)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
> a b c d e f g)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,)</A
> a b c d e f g h)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,)</A
> a b c d e f g h i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,)</A
> a b c d e f g h i j)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> k) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,)</A
> a b c d e f g h i j k)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> k, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> l) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,)</A
> a b c d e f g h i j k l)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> k, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> l, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> m) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> k, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> l, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> m, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> n) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> b, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> c, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> d, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> e, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> f, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> g, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> h, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> i, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> j, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> k, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> l, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> m, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> n, <A HREF="Prelude.html#t%3AEq"
>Eq</A
> o) =&gt; <A HREF="Prelude.html#t%3AEq"
>Eq</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n o)</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 HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; <A NAME="t:Ord"
><A NAME="t%3AOrd"
></A
></A
><B
>Ord</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
></TT
> class is used for totally ordered datatypes.
</P
><P
>Instances of <TT
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
></TT
> can be derived for any user-defined
 datatype whose constituent types are in <TT
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
></TT
>.  The declared order
 of the constructors in the data declaration determines the ordering
 in derived <TT
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
></TT
> instances.  The <TT
><A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TT
> datatype allows a single
 comparison to determine the precise ordering of two objects.
</P
><P
>Minimal complete definition: either <TT
><A HREF="Prelude.html#v%3Acompare"
>compare</A
></TT
> or <TT
><A HREF="Prelude.html#v%3A%3C%3D"
>&lt;=</A
></TT
>.
 Using <TT
><A HREF="Prelude.html#v%3Acompare"
>compare</A
></TT
> can be more efficient for complex types.
</P
></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:compare"
><A NAME="v%3Acompare"
></A
></A
><B
>compare</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<"
><A NAME="v%3A%3C"
></A
></A
><B
>(&lt;)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:>="
><A NAME="v%3A%3E%3D"
></A
></A
><B
>(&gt;=)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:>"
><A NAME="v%3A%3E"
></A
></A
><B
>(&gt;)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:<="
><A NAME="v%3A%3C%3D"
></A
></A
><B
>(&lt;=)</B
> :: a -&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:max"
><A NAME="v%3Amax"
></A
></A
><B
>max</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:min"
><A NAME="v%3Amin"
></A
></A
><B
>min</B
> :: a -&gt; a -&gt; 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:Ord')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Ord" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Control-Exception-Base.html#t%3AArithException"
>ArithException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Exit.html#t%3AExitCode"
>ExitCode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Control-Exception-Base.html#t%3AArrayException"
>ArrayException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Control-Exception-Base.html#t%3AAsyncException"
>AsyncException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-IO.html#t%3ABufferMode"
>BufferMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="GHC-Conc.html#t%3AThreadStatus"
>ThreadStatus</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="GHC-Conc.html#t%3ABlockReason"
>BlockReason</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Control-Concurrent.html#t%3AThreadId"
>ThreadId</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Monoid.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Monoid.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Unique.html#t%3AUnique"
>Unique</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> <A HREF="Data-Version.html#t%3AVersion"
>Version</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> ([] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Foreign-Ptr.html#t%3AFunPtr"
>FunPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> ([::] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="GHC-Exts.html#t%3ADown"
>Down</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Monoid.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Monoid.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Data-Monoid.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a b c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a b c d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a b c d e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
> a b c d e f)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
> a b c d e f g)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,)</A
> a b c d e f g h)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,)</A
> a b c d e f g h i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,)</A
> a b c d e f g h i j)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> k) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,)</A
> a b c d e f g h i j k)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> k, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> l) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,)</A
> a b c d e f g h i j k l)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> k, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> l, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> m) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> k, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> l, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> m, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> n) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> b, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> c, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> d, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> e, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> f, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> g, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> h, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> i, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> j, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> k, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> l, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> m, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> n, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> o) =&gt; <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n o)</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:Enum"
><A NAME="t%3AEnum"
></A
></A
><B
>Enum</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Class <TT
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
></TT
> defines operations on sequentially ordered types.
</P
><P
>The <TT
>enumFrom</TT
>... methods are used in Haskell's translation of
 arithmetic sequences.
</P
><P
>Instances of <TT
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
></TT
> may be derived for any enumeration type (types
 whose constructors have no fields).  The nullary constructors are
 assumed to be numbered left-to-right by <TT
><A HREF="Prelude.html#v%3AfromEnum"
>fromEnum</A
></TT
> from <TT
>0</TT
> through <TT
>n-1</TT
>.
 See Chapter 10 of the <EM
>Haskell Report</EM
> for more details.
</P
><P
>For any type that is an instance of class <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
> as well as <TT
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
></TT
>,
 the following should hold:
</P
><UL
><LI
> The calls <TT
><TT
><A HREF="Prelude.html#v%3Asucc"
>succ</A
></TT
> <TT
><A HREF="Prelude.html#v%3AmaxBound"
>maxBound</A
></TT
></TT
> and <TT
><TT
><A HREF="Prelude.html#v%3Apred"
>pred</A
></TT
> <TT
><A HREF="Prelude.html#v%3AminBound"
>minBound</A
></TT
></TT
> should result in
   a runtime error.
</LI
><LI
> <TT
><A HREF="Prelude.html#v%3AfromEnum"
>fromEnum</A
></TT
> and <TT
><A HREF="Prelude.html#v%3AtoEnum"
>toEnum</A
></TT
> should give a runtime error if the 
   result value is not representable in the result type.
   For example, <TT
><TT
><A HREF="Prelude.html#v%3AtoEnum"
>toEnum</A
></TT
> 7 :: <TT
><A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TT
></TT
> is an error.
</LI
><LI
> <TT
><A HREF="Prelude.html#v%3AenumFrom"
>enumFrom</A
></TT
> and <TT
><A HREF="Prelude.html#v%3AenumFromThen"
>enumFromThen</A
></TT
> should be defined with an implicit bound,
   thus:
</LI
></UL
><PRE
>    enumFrom     x   = enumFromTo     x maxBound
    enumFromThen x y = enumFromThenTo x y bound
      where
        bound | fromEnum y &gt;= fromEnum x = maxBound
              | otherwise                = minBound
</PRE
></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:succ"
><A NAME="v%3Asucc"
></A
></A
><B
>succ</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>the successor of a value.  For numeric types, <TT
><A HREF="Prelude.html#v%3Asucc"
>succ</A
></TT
> adds 1.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:pred"
><A NAME="v%3Apred"
></A
></A
><B
>pred</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>the predecessor of a value.  For numeric types, <TT
><A HREF="Prelude.html#v%3Apred"
>pred</A
></TT
> subtracts 1.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:toEnum"
><A NAME="v%3AtoEnum"
></A
></A
><B
>toEnum</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Convert from an <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fromEnum"
><A NAME="v%3AfromEnum"
></A
></A
><B
>fromEnum</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>Convert to an <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TT
>.
 It is implementation-dependent what <TT
><A HREF="Prelude.html#v%3AfromEnum"
>fromEnum</A
></TT
> returns when
 applied to a value that is too large to fit in an <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:enumFrom"
><A NAME="v%3AenumFrom"
></A
></A
><B
>enumFrom</B
> :: a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Used in Haskell's translation of <TT
>[n..]</TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:enumFromThen"
><A NAME="v%3AenumFromThen"
></A
></A
><B
>enumFromThen</B
> :: a -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Used in Haskell's translation of <TT
>[n,n'..]</TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:enumFromTo"
><A NAME="v%3AenumFromTo"
></A
></A
><B
>enumFromTo</B
> :: a -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Used in Haskell's translation of <TT
>[n..m]</TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:enumFromThenTo"
><A NAME="v%3AenumFromThenTo"
></A
></A
><B
>enumFromThenTo</B
> :: a -&gt; a -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Used in Haskell's translation of <TT
>[n,n'..m]</TT
>.
</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:Enum')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Enum" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AEnum"
>Enum</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AEnum"
>Enum</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</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:Bounded"
><A NAME="t%3ABounded"
></A
></A
><B
>Bounded</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
> class is used to name the upper and lower limits of a
 type.  <TT
><A HREF="Prelude.html#t%3AOrd"
>Ord</A
></TT
> is not a superclass of <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
> since types that are not
 totally ordered may also have upper and lower bounds.
</P
><P
>The <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
> class may be derived for any enumeration type;
 <TT
><A HREF="Prelude.html#v%3AminBound"
>minBound</A
></TT
> is the first constructor listed in the <TT
>data</TT
> declaration
 and <TT
><A HREF="Prelude.html#v%3AmaxBound"
>maxBound</A
></TT
> is the last.
 <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
> may also be derived for single-constructor datatypes whose
 constituent types are in <TT
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
></TT
>.
</P
></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:minBound"
><A NAME="v%3AminBound"
></A
></A
><B
>minBound</B
> :: a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:maxBound"
><A NAME="v%3AmaxBound"
></A
></A
><B
>maxBound</B
> :: 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:Bounded')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Bounded" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Monoid.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> <A HREF="Data-Monoid.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Monoid.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Monoid.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="Data-Monoid.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a b c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a b c d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a b c d e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
> a b c d e f)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
> a b c d e f g)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,)</A
> a b c d e f g h)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,)</A
> a b c d e f g h i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,)</A
> a b c d e f g h i j)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> k) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,)</A
> a b c d e f g h i j k)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> k, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> l) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,)</A
> a b c d e f g h i j k l)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> k, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> l, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> m) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> k, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> l, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> m, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> n) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> a, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> b, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> c, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> d, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> e, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> f, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> g, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> h, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> i, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> j, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> k, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> l, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> m, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> n, <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> o) =&gt; <A HREF="Prelude.html#t%3ABounded"
>Bounded</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n o)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="5"
><A NAME="5"
>Numbers
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="6"
><A NAME="6"
>Numeric types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AI%23"
>I#</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> (S#, J#)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AF%23"
>F#</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
> (<A HREF="../ghc-prim/GHC-Types.html#v%3AD%23"
>D#</A
>)</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:Rational"
><A NAME="t%3ARational"
></A
></A
><B
>Rational</B
> = <A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="doc"
>Arbitrary-precision rational numbers, represented as a ratio of
 two <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
> values.  A rational number may be constructed using
 the <TT
><A HREF="Data-Ratio.html#v%3A%25"
>%</A
></TT
> operator.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="7"
><A NAME="7"
>Numeric type classes
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
> (<A HREF="Prelude.html#t%3AEq"
>Eq</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> a) =&gt; <A NAME="t:Num"
><A NAME="t%3ANum"
></A
></A
><B
>Num</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Basic numeric class.
</P
><P
>Minimal complete definition: all except <TT
><A HREF="Prelude.html#v%3Anegate"
>negate</A
></TT
> or <TT
>(-)</TT
>
</P
></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:+"
><A NAME="v%3A%2B"
></A
></A
><B
>(+)</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:*"
><A NAME="v%3A%2A"
></A
></A
><B
>(*)</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:-"
><A NAME="v%3A-"
></A
></A
><B
>(-)</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:negate"
><A NAME="v%3Anegate"
></A
></A
><B
>negate</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Unary negation.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:abs"
><A NAME="v%3Aabs"
></A
></A
><B
>abs</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Absolute value.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:signum"
><A NAME="v%3Asignum"
></A
></A
><B
>signum</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><P
>Sign of a number.
 The functions <TT
><A HREF="Prelude.html#v%3Aabs"
>abs</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Asignum"
>signum</A
></TT
> should satisfy the law: 
</P
><PRE
> abs x * signum x == x
</PRE
><P
>For real numbers, the <TT
><A HREF="Prelude.html#v%3Asignum"
>signum</A
></TT
> is either <TT
>-1</TT
> (negative), <TT
>0</TT
> (zero)
 or <TT
>1</TT
> (positive).
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fromInteger"
><A NAME="v%3AfromInteger"
></A
></A
><B
>fromInteger</B
> :: <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Conversion from an <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
>.
 An integer literal represents the application of the function
 <TT
><A HREF="Prelude.html#v%3AfromInteger"
>fromInteger</A
></TT
> to the appropriate value of type <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
>,
 so such literals have type <TT
>(<TT
><A HREF="Prelude.html#t%3ANum"
>Num</A
></TT
> a) =&gt; a</TT
>.
</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:Num')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Num" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ANum"
>Num</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3ANum"
>Num</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a =&gt; <A HREF="Prelude.html#t%3ANum"
>Num</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Fixed.html#t%3AHasResolution"
>HasResolution</A
> a =&gt; <A HREF="Prelude.html#t%3ANum"
>Num</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</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 HREF="Prelude.html#t%3ANum"
>Num</A
> a, <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a) =&gt; <A NAME="t:Real"
><A NAME="t%3AReal"
></A
></A
><B
>Real</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:toRational"
><A NAME="v%3AtoRational"
></A
></A
><B
>toRational</B
> :: a -&gt; <A HREF="Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
><TR
><TD CLASS="doc"
>the rational equivalent of its real argument with full precision
</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:Real')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Real" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AReal"
>Real</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AReal"
>Real</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Fixed.html#t%3AHasResolution"
>HasResolution</A
> a =&gt; <A HREF="Prelude.html#t%3AReal"
>Real</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</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 HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AEnum"
>Enum</A
> a) =&gt; <A NAME="t:Integral"
><A NAME="t%3AIntegral"
></A
></A
><B
>Integral</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Integral numbers, supporting integer division.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3AquotRem"
>quotRem</A
></TT
> and <TT
><A HREF="Prelude.html#v%3AtoInteger"
>toInteger</A
></TT
>
</P
></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:quot"
><A NAME="v%3Aquot"
></A
></A
><B
>quot</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>integer division truncated toward zero
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:rem"
><A NAME="v%3Arem"
></A
></A
><B
>rem</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><P
>integer remainder, satisfying
</P
><PRE
> (x `quot` y)*y + (x `rem` y) == x
</PRE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:div"
><A NAME="v%3Adiv"
></A
></A
><B
>div</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>integer division truncated toward negative infinity
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mod"
><A NAME="v%3Amod"
></A
></A
><B
>mod</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><P
>integer modulus, satisfying
</P
><PRE
> (x `div` y)*y + (x `mod` y) == x
</PRE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:quotRem"
><A NAME="v%3AquotRem"
></A
></A
><B
>quotRem</B
> :: a -&gt; a -&gt; (a, a)</TD
></TR
><TR
><TD CLASS="doc"
>simultaneous <TT
><A HREF="Prelude.html#v%3Aquot"
>quot</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Arem"
>rem</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:divMod"
><A NAME="v%3AdivMod"
></A
></A
><B
>divMod</B
> :: a -&gt; a -&gt; (a, a)</TD
></TR
><TR
><TD CLASS="doc"
>simultaneous <TT
><A HREF="Prelude.html#v%3Adiv"
>div</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Amod"
>mod</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:toInteger"
><A NAME="v%3AtoInteger"
></A
></A
><B
>toInteger</B
> :: a -&gt; <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="doc"
>conversion to <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
>
</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:Integral')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Integral" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></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 HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; <A NAME="t:Fractional"
><A NAME="t%3AFractional"
></A
></A
><B
>Fractional</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Fractional numbers, supporting real division.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3AfromRational"
>fromRational</A
></TT
> and (<TT
><A HREF="Prelude.html#v%3Arecip"
>recip</A
></TT
> or <TT
>(<TT
><A HREF="Prelude.html#v%3A%2F"
>/</A
></TT
>)</TT
>)
</P
></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:/"
><A NAME="v%3A%2F"
></A
></A
><B
>(/)</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>fractional division
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:recip"
><A NAME="v%3Arecip"
></A
></A
><B
>recip</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>reciprocal fraction
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fromRational"
><A NAME="v%3AfromRational"
></A
></A
><B
>fromRational</B
> :: <A HREF="Prelude.html#t%3ARational"
>Rational</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Conversion from a <TT
><A HREF="Prelude.html#t%3ARational"
>Rational</A
></TT
> (that is <TT
><TT
><A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
></TT
> <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
></TT
>).
 A floating literal stands for an application of <TT
><A HREF="Prelude.html#v%3AfromRational"
>fromRational</A
></TT
>
 to a value of type <TT
><A HREF="Prelude.html#t%3ARational"
>Rational</A
></TT
>, so such literals have type
 <TT
>(<TT
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
></TT
> a) =&gt; a</TT
>.
</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:Fractional')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Fractional" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a =&gt; <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Fixed.html#t%3AHasResolution"
>HasResolution</A
> a =&gt; <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</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 HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a =&gt; <A NAME="t:Floating"
><A NAME="t%3AFloating"
></A
></A
><B
>Floating</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Trigonometric and hyperbolic functions and related functions.
</P
><P
>Minimal complete definition:
      <TT
><A HREF="Prelude.html#v%3Api"
>pi</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Aexp"
>exp</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Alog"
>log</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Asin"
>sin</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Acos"
>cos</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Asinh"
>sinh</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Acosh"
>cosh</A
></TT
>,
      <TT
><A HREF="Prelude.html#v%3Aasin"
>asin</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Aacos"
>acos</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Aatan"
>atan</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Aasinh"
>asinh</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Aacosh"
>acosh</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Aatanh"
>atanh</A
></TT
>
</P
></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:pi"
><A NAME="v%3Api"
></A
></A
><B
>pi</B
> :: a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:exp"
><A NAME="v%3Aexp"
></A
></A
><B
>exp</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sqrt"
><A NAME="v%3Asqrt"
></A
></A
><B
>sqrt</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:log"
><A NAME="v%3Alog"
></A
></A
><B
>log</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:**"
><A NAME="v%3A%2A%2A"
></A
></A
><B
>(**)</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:logBase"
><A NAME="v%3AlogBase"
></A
></A
><B
>logBase</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sin"
><A NAME="v%3Asin"
></A
></A
><B
>sin</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tan"
><A NAME="v%3Atan"
></A
></A
><B
>tan</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cos"
><A NAME="v%3Acos"
></A
></A
><B
>cos</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:asin"
><A NAME="v%3Aasin"
></A
></A
><B
>asin</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:atan"
><A NAME="v%3Aatan"
></A
></A
><B
>atan</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:acos"
><A NAME="v%3Aacos"
></A
></A
><B
>acos</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sinh"
><A NAME="v%3Asinh"
></A
></A
><B
>sinh</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tanh"
><A NAME="v%3Atanh"
></A
></A
><B
>tanh</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cosh"
><A NAME="v%3Acosh"
></A
></A
><B
>cosh</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:asinh"
><A NAME="v%3Aasinh"
></A
></A
><B
>asinh</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:atanh"
><A NAME="v%3Aatanh"
></A
></A
><B
>atanh</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:acosh"
><A NAME="v%3Aacosh"
></A
></A
><B
>acosh</B
> :: a -&gt; 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:Floating')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Floating" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFloating"
>Floating</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFloating"
>Floating</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFloating"
>Floating</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFloating"
>Floating</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFloating"
>Floating</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a =&gt; <A HREF="Prelude.html#t%3AFloating"
>Floating</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</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 HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a) =&gt; <A NAME="t:RealFrac"
><A NAME="t%3ARealFrac"
></A
></A
><B
>RealFrac</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Extracting components of fractions.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3AproperFraction"
>properFraction</A
></TT
>
</P
></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:properFraction"
><A NAME="v%3AproperFraction"
></A
></A
><B
>properFraction</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; (b, a)</TD
></TR
><TR
><TD CLASS="doc"
><P
>The function <TT
><A HREF="Prelude.html#v%3AproperFraction"
>properFraction</A
></TT
> takes a real fractional number <TT
>x</TT
>
 and returns a pair <TT
>(n,f)</TT
> such that <TT
>x = n+f</TT
>, and:
</P
><UL
><LI
> <TT
>n</TT
> is an integral number with the same sign as <TT
>x</TT
>; and
</LI
><LI
> <TT
>f</TT
> is a fraction with the same type and sign as <TT
>x</TT
>,
   and with absolute value less than <TT
>1</TT
>.
</LI
></UL
><P
>The default definitions of the <TT
><A HREF="Prelude.html#v%3Aceiling"
>ceiling</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Afloor"
>floor</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Atruncate"
>truncate</A
></TT
>
 and <TT
><A HREF="Prelude.html#v%3Around"
>round</A
></TT
> functions are in terms of <TT
><A HREF="Prelude.html#v%3AproperFraction"
>properFraction</A
></TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:truncate"
><A NAME="v%3Atruncate"
></A
></A
><B
>truncate</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Atruncate"
>truncate</A
></TT
> x</TT
> returns the integer nearest <TT
>x</TT
> between zero and <TT
>x</TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:round"
><A NAME="v%3Around"
></A
></A
><B
>round</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Around"
>round</A
></TT
> x</TT
> returns the nearest integer to <TT
>x</TT
>;
   the even integer if <TT
>x</TT
> is equidistant between two integers
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ceiling"
><A NAME="v%3Aceiling"
></A
></A
><B
>ceiling</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Aceiling"
>ceiling</A
></TT
> x</TT
> returns the least integer not less than <TT
>x</TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:floor"
><A NAME="v%3Afloor"
></A
></A
><B
>floor</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Afloor"
>floor</A
></TT
> x</TT
> returns the greatest integer not greater than <TT
>x</TT
>
</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:RealFrac')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:RealFrac" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Fixed.html#t%3AHasResolution"
>HasResolution</A
> a =&gt; <A HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</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 HREF="Prelude.html#t%3ARealFrac"
>RealFrac</A
> a, <A HREF="Prelude.html#t%3AFloating"
>Floating</A
> a) =&gt; <A NAME="t:RealFloat"
><A NAME="t%3ARealFloat"
></A
></A
><B
>RealFloat</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Efficient, machine-independent access to the components of a
 floating-point number.
</P
><P
>Minimal complete definition:
      all except <TT
><A HREF="Prelude.html#v%3Aexponent"
>exponent</A
></TT
>, <TT
><A HREF="Prelude.html#v%3Asignificand"
>significand</A
></TT
>, <TT
><A HREF="Prelude.html#v%3AscaleFloat"
>scaleFloat</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Aatan2"
>atan2</A
></TT
>
</P
></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:floatRadix"
><A NAME="v%3AfloatRadix"
></A
></A
><B
>floatRadix</B
> :: a -&gt; <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="doc"
>a constant function, returning the radix of the representation
 (often <TT
>2</TT
>)
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:floatDigits"
><A NAME="v%3AfloatDigits"
></A
></A
><B
>floatDigits</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>a constant function, returning the number of digits of
 <TT
><A HREF="Prelude.html#v%3AfloatRadix"
>floatRadix</A
></TT
> in the significand
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:floatRange"
><A NAME="v%3AfloatRange"
></A
></A
><B
>floatRange</B
> :: a -&gt; (<A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>a constant function, returning the lowest and highest values
 the exponent may assume
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:decodeFloat"
><A NAME="v%3AdecodeFloat"
></A
></A
><B
>decodeFloat</B
> :: a -&gt; (<A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
>, <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
>)</TD
></TR
><TR
><TD CLASS="doc"
>The function <TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
> applied to a real floating-point
 number returns the significand expressed as an <TT
><A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TT
> and an
 appropriately scaled exponent (an <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TT
>).  If <TT
><TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
> x</TT
>
 yields <TT
>(m,n)</TT
>, then <TT
>x</TT
> is equal in value to <TT
>m*b^^n</TT
>, where <TT
>b</TT
>
 is the floating-point radix, and furthermore, either <TT
>m</TT
> and <TT
>n</TT
>
 are both zero or else <TT
>b^(d-1) &lt;= m &lt; b^d</TT
>, where <TT
>d</TT
> is the value
 of <TT
><TT
><A HREF="Prelude.html#v%3AfloatDigits"
>floatDigits</A
></TT
> x</TT
>.  In particular, <TT
><TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
> 0 = (0,0)</TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:encodeFloat"
><A NAME="v%3AencodeFloat"
></A
></A
><B
>encodeFloat</B
> :: <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
> -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3AencodeFloat"
>encodeFloat</A
></TT
> performs the inverse of <TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
>
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:exponent"
><A NAME="v%3Aexponent"
></A
></A
><B
>exponent</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
>the second component of <TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:significand"
><A NAME="v%3Asignificand"
></A
></A
><B
>significand</B
> :: a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>the first component of <TT
><A HREF="Prelude.html#v%3AdecodeFloat"
>decodeFloat</A
></TT
>, scaled to lie in the open
 interval (<TT
>-1</TT
>,<TT
>1</TT
>)
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scaleFloat"
><A NAME="v%3AscaleFloat"
></A
></A
><B
>scaleFloat</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>multiplies a floating-point number by an integer power of the radix
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isNaN"
><A NAME="v%3AisNaN"
></A
></A
><B
>isNaN</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the argument is an IEEE &quot;not-a-number&quot; (NaN) value
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isInfinite"
><A NAME="v%3AisInfinite"
></A
></A
><B
>isInfinite</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the argument is an IEEE infinity or negative infinity
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isDenormalized"
><A NAME="v%3AisDenormalized"
></A
></A
><B
>isDenormalized</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the argument is too small to be represented in
 normalized format
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isNegativeZero"
><A NAME="v%3AisNegativeZero"
></A
></A
><B
>isNegativeZero</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the argument is an IEEE negative zero
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:isIEEE"
><A NAME="v%3AisIEEE"
></A
></A
><B
>isIEEE</B
> :: a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the argument is an IEEE floating point number
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:atan2"
><A NAME="v%3Aatan2"
></A
></A
><B
>atan2</B
> :: a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>a version of arctangent taking two real floating-point arguments.
 For real floating <TT
>x</TT
> and <TT
>y</TT
>, <TT
><TT
><A HREF="Prelude.html#v%3Aatan2"
>atan2</A
></TT
> y x</TT
> computes the angle
 (from the positive x-axis) of the vector from the origin to the
 point <TT
>(x,y)</TT
>.  <TT
><TT
><A HREF="Prelude.html#v%3Aatan2"
>atan2</A
></TT
> y x</TT
> returns a value in the range [<TT
>-pi</TT
>,
 <TT
>pi</TT
>].  It follows the Common Lisp semantics for the origin when
 signed zeroes are supported.  <TT
><TT
><A HREF="Prelude.html#v%3Aatan2"
>atan2</A
></TT
> y 1</TT
>, with <TT
>y</TT
> in a type
 that is <TT
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
></TT
>, should return the same value as <TT
><TT
><A HREF="Prelude.html#v%3Aatan"
>atan</A
></TT
> y</TT
>.
 A default definition of <TT
><A HREF="Prelude.html#v%3Aatan2"
>atan2</A
></TT
> is provided, but implementors
 can provide a more accurate implementation.
</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:RealFloat')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:RealFloat" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="8"
><A NAME="8"
>Numeric functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:subtract"
><A NAME="v%3Asubtract"
></A
></A
><B
>subtract</B
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><P
>the same as <TT
><TT
><A HREF="Prelude.html#v%3Aflip"
>flip</A
></TT
> (<TT
><A HREF="Prelude.html#v%3A-"
>-</A
></TT
>)</TT
>.
</P
><P
>Because <TT
>-</TT
> is treated specially in the Haskell grammar,
 <TT
>(-</TT
> <EM
>e</EM
><TT
>)</TT
> is not a section, but an application of prefix negation.
 However, <TT
>(<TT
><A HREF="Prelude.html#v%3Asubtract"
>subtract</A
></TT
></TT
> <EM
>exp</EM
><TT
>)</TT
> is equivalent to the disallowed section.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:even"
><A NAME="v%3Aeven"
></A
></A
><B
>even</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:odd"
><A NAME="v%3Aodd"
></A
></A
><B
>odd</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:gcd"
><A NAME="v%3Agcd"
></A
></A
><B
>gcd</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Agcd"
>gcd</A
></TT
> x y</TT
> is the greatest (positive) integer that divides both <TT
>x</TT
>
 and <TT
>y</TT
>; for example <TT
><TT
><A HREF="Prelude.html#v%3Agcd"
>gcd</A
></TT
> (-3) 6</TT
> = <TT
>3</TT
>, <TT
><TT
><A HREF="Prelude.html#v%3Agcd"
>gcd</A
></TT
> (-3) (-6)</TT
> = <TT
>3</TT
>,
 <TT
><TT
><A HREF="Prelude.html#v%3Agcd"
>gcd</A
></TT
> 0 4</TT
> = <TT
>4</TT
>.  <TT
><TT
><A HREF="Prelude.html#v%3Agcd"
>gcd</A
></TT
> 0 0</TT
> raises a runtime error.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lcm"
><A NAME="v%3Alcm"
></A
></A
><B
>lcm</B
> :: <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Alcm"
>lcm</A
></TT
> x y</TT
> is the smallest positive integer that both <TT
>x</TT
> and <TT
>y</TT
> divide.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:^"
><A NAME="v%3A%5E"
></A
></A
><B
>(^)</B
> :: (<A HREF="Prelude.html#t%3ANum"
>Num</A
> a, <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b) =&gt; a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>raise a number to a non-negative integral power
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:^^"
><A NAME="v%3A%5E%5E"
></A
></A
><B
>(^^)</B
> :: (<A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> a, <A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> b) =&gt; a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>raise a number to an integral power
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fromIntegral"
><A NAME="v%3AfromIntegral"
></A
></A
><B
>fromIntegral</B
> :: (<A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a, <A HREF="Prelude.html#t%3ANum"
>Num</A
> b) =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
>general coercion from integral types
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:realToFrac"
><A NAME="v%3ArealToFrac"
></A
></A
><B
>realToFrac</B
> :: (<A HREF="Prelude.html#t%3AReal"
>Real</A
> a, <A HREF="Prelude.html#t%3AFractional"
>Fractional</A
> b) =&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
>general coercion to fractional types
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="9"
><A NAME="9"
>Monads and functors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Monad"
><A NAME="t%3AMonad"
></A
></A
><B
>Monad</B
> m  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> class defines the basic operations over a <EM
>monad</EM
>,
a concept from a branch of mathematics known as <EM
>category theory</EM
>.
From the perspective of a Haskell programmer, however, it is best to
think of a monad as an <EM
>abstract datatype</EM
> of actions.
Haskell's <TT
>do</TT
> expressions provide a convenient syntax for writing
monadic expressions.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3A%3E%3E%3D"
>&gt;&gt;=</A
></TT
> and <TT
><A HREF="Prelude.html#v%3Areturn"
>return</A
></TT
>.
</P
><P
>Instances of <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> should satisfy the following laws:
</P
><PRE
> return a &gt;&gt;= k  ==  k a
 m &gt;&gt;= return  ==  m
 m &gt;&gt;= (\x -&gt; k x &gt;&gt;= h)  ==  (m &gt;&gt;= k) &gt;&gt;= h
</PRE
><P
>Instances of both <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> and <TT
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
></TT
> should additionally satisfy the law:
</P
><PRE
> fmap f xs  ==  xs &gt;&gt;= return . f
</PRE
><P
>The instances of <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> for lists, Data.Maybe.Maybe and System.IO.IO
defined in the <A HREF="Prelude.html"
>Prelude</A
> satisfy these laws.
</P
></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:>>="
><A NAME="v%3A%3E%3E%3D"
></A
></A
><B
>(&gt;&gt;=)</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b.  m a -&gt; (a -&gt; m b) -&gt; m b</TD
></TR
><TR
><TD CLASS="doc"
>Sequentially compose two actions, passing any value produced
 by the first as an argument to the second.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:>>"
><A NAME="v%3A%3E%3E"
></A
></A
><B
>(&gt;&gt;)</B
> :: <SPAN CLASS="keyword"
>forall</SPAN
> a b.  m a -&gt; m b -&gt; m b</TD
></TR
><TR
><TD CLASS="doc"
>Sequentially compose two actions, discarding any value produced
 by the first, like sequencing operators (such as the semicolon)
 in imperative languages.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:return"
><A NAME="v%3Areturn"
></A
></A
><B
>return</B
> ::  a -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
>Inject a value into the monadic type.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fail"
><A NAME="v%3Afail"
></A
></A
><B
>fail</B
> ::  <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; m a</TD
></TR
><TR
><TD CLASS="doc"
>Fail with a message.  This operation is not part of the
 mathematical definition of a monad, but is invoked on pattern-match
 failure in a <TT
>do</TT
> expression.
</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:Monad')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Monad" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> []</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> [::]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP"
>ReadP</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> P</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec"
>ReadPrec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="GHC-Conc.html#t%3ASTM"
>STM</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> ((-&gt;) r)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> (<A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow.html#t%3AArrowApply"
>ArrowApply</A
> a =&gt; <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> (<A HREF="Control-Arrow.html#t%3AArrowMonad"
>ArrowMonad</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> (<A HREF="Control-Monad-ST-Lazy.html#t%3AST"
>ST</A
> s)</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:Functor"
><A NAME="t%3AFunctor"
></A
></A
><B
>Functor</B
> f  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>The <TT
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
></TT
> class is used for types that can be mapped over.
Instances of <TT
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
></TT
> should satisfy the following laws:
</P
><PRE
> fmap id  ==  id
 fmap (f . g)  ==  fmap f . fmap g
</PRE
><P
>The instances of <TT
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
></TT
> for lists, Data.Maybe.Maybe and System.IO.IO
defined in the <A HREF="Prelude.html"
>Prelude</A
> satisfy these laws.
</P
></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:fmap"
><A NAME="v%3Afmap"
></A
></A
><B
>fmap</B
> ::  (a -&gt; b) -&gt; f a -&gt; f b</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:Functor')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Functor" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> []</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> [::]</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP"
>ReadP</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec"
>ReadPrec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="GHC-Conc.html#t%3ASTM"
>STM</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Control-Applicative.html#t%3AZipList"
>ZipList</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> Id</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> ((-&gt;) r)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> i =&gt; <A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> i)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Monad-ST-Lazy.html#t%3AST"
>ST</A
> s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; <A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AWrappedMonad"
>WrappedMonad</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AConst"
>Const</A
> m)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (StateR s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (StateL s)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Arrow.html#t%3AArrow"
>Arrow</A
> a =&gt; <A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> (<A HREF="Control-Applicative.html#t%3AWrappedArrow"
>WrappedArrow</A
> a b)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mapM"
><A NAME="v%3AmapM"
></A
></A
><B
>mapM</B
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m [b]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3AmapM"
>mapM</A
></TT
> f</TT
> is equivalent to <TT
><TT
><A HREF="Prelude.html#v%3Asequence"
>sequence</A
></TT
> . <TT
><A HREF="Prelude.html#v%3Amap"
>map</A
></TT
> f</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:mapM_"
><A NAME="v%3AmapM_"
></A
></A
><B
>mapM_</B
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; [a] -&gt; m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3AmapM_"
>mapM_</A
></TT
> f</TT
> is equivalent to <TT
><TT
><A HREF="Prelude.html#v%3Asequence_"
>sequence_</A
></TT
> . <TT
><A HREF="Prelude.html#v%3Amap"
>map</A
></TT
> f</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sequence"
><A NAME="v%3Asequence"
></A
></A
><B
>sequence</B
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; [m a] -&gt; m [a]</TD
></TR
><TR
><TD CLASS="doc"
>Evaluate each action in the sequence from left to right,
 and collect the results.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sequence_"
><A NAME="v%3Asequence_"
></A
></A
><B
>sequence_</B
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; [m a] -&gt; m <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>Evaluate each action in the sequence from left to right,
 and ignore the results.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:=<<"
><A NAME="v%3A%3D%3C%3C"
></A
></A
><B
>(=&lt;&lt;)</B
> :: <A HREF="Prelude.html#t%3AMonad"
>Monad</A
> m =&gt; (a -&gt; m b) -&gt; m a -&gt; m b</TD
></TR
><TR
><TD CLASS="doc"
>Same as <TT
><A HREF="Prelude.html#v%3A%3E%3E%3D"
>&gt;&gt;=</A
></TT
>, but with the arguments interchanged.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="10"
><A NAME="10"
>Miscellaneous functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:id"
><A NAME="v%3Aid"
></A
></A
><B
>id</B
> ::  a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Identity function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:const"
><A NAME="v%3Aconst"
></A
></A
><B
>const</B
> ::  a -&gt; b -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Constant function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:."
><A NAME="v%3A."
></A
></A
><B
>(.)</B
> ::  (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
>Function composition.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:flip"
><A NAME="v%3Aflip"
></A
></A
><B
>flip</B
> ::  (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Aflip"
>flip</A
></TT
> f</TT
> takes its (first) two arguments in the reverse order of <TT
>f</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:$"
><A NAME="v%3A%24"
></A
></A
><B
>($)</B
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><P
>Application operator.  This operator is redundant, since ordinary
 application <TT
>(f x)</TT
> means the same as <TT
>(f <TT
><A HREF="Prelude.html#v%3A%24"
>$</A
></TT
> x)</TT
>. However, <TT
><A HREF="Prelude.html#v%3A%24"
>$</A
></TT
> has
 low, right-associative binding precedence, so it sometimes allows
 parentheses to be omitted; for example:
</P
><PRE
>     f $ g $ h x  =  f (g (h x))
</PRE
><P
>It is also useful in higher-order situations, such as <TT
><TT
><A HREF="Prelude.html#v%3Amap"
>map</A
></TT
> (<TT
><A HREF="Prelude.html#v%3A%24"
>$</A
></TT
> 0) xs</TT
>,
 or <TT
>Data.List.zipWith (<TT
><A HREF="Prelude.html#v%3A%24"
>$</A
></TT
>) fs xs</TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:until"
><A NAME="v%3Auntil"
></A
></A
><B
>until</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; (a -&gt; a) -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><TT
><A HREF="Prelude.html#v%3Auntil"
>until</A
></TT
> p f</TT
> yields the result of applying <TT
>f</TT
> until <TT
>p</TT
> holds.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:asTypeOf"
><A NAME="v%3AasTypeOf"
></A
></A
><B
>asTypeOf</B
> ::  a -&gt; a -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3AasTypeOf"
>asTypeOf</A
></TT
> is a type-restricted version of <TT
><A HREF="Prelude.html#v%3Aconst"
>const</A
></TT
>.  It is usually
 used as an infix operator, and its typing forces its first argument
 (which is usually overloaded) to have the same type as the second.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:error"
><A NAME="v%3Aerror"
></A
></A
><B
>error</B
> ::  [<A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
>] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aerror"
>error</A
></TT
> stops execution and displays an error message.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:undefined"
><A NAME="v%3Aundefined"
></A
></A
><B
>undefined</B
> ::  a</TD
></TR
><TR
><TD CLASS="doc"
>A special case of <TT
><A HREF="Prelude.html#v%3Aerror"
>error</A
></TT
>.
 It is expected that compilers will recognize this and insert error
 messages which are more appropriate to the context in which <TT
><A HREF="Prelude.html#v%3Aundefined"
>undefined</A
></TT
>
 appears. 
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../ghc-prim/GHC-Prim.html#v%3Aseq"
>seq</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:$!"
><A NAME="v%3A%24%21"
></A
></A
><B
>($!)</B
> ::  (a -&gt; b) -&gt; a -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
>Strict (call-by-value) application, defined in terms of <TT
><A HREF="../ghc-prim/GHC-Prim.html#v%3Aseq"
>seq</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="11"
><A NAME="11"
>List operations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:map"
><A NAME="v%3Amap"
></A
></A
><B
>map</B
> ::  (a -&gt; b) -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Amap"
>map</A
></TT
> <TT
>f xs</TT
> is the list obtained by applying <TT
>f</TT
> to each element
 of <TT
>xs</TT
>, i.e.,
</P
><PRE
> map f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]
 map f [x1, x2, ...] == [f x1, f x2, ...]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:++"
><A NAME="v%3A%2B%2B"
></A
></A
><B
>(++)</B
> ::  [a] -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
>Append two lists, i.e.,
</P
><PRE
> [x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
 [x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]
</PRE
><P
>If the first list is not finite, the result is the first list.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:filter"
><A NAME="v%3Afilter"
></A
></A
><B
>filter</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Afilter"
>filter</A
></TT
>, applied to a predicate and a list, returns the list of
 those elements that satisfy the predicate; i.e.,
</P
><PRE
> filter p xs = [ x | x &lt;- xs, p x]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:head"
><A NAME="v%3Ahead"
></A
></A
><B
>head</B
> ::  [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Extract the first element of a list, which must be non-empty.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:last"
><A NAME="v%3Alast"
></A
></A
><B
>last</B
> ::  [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>Extract the last element of a list, which must be finite and non-empty.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tail"
><A NAME="v%3Atail"
></A
></A
><B
>tail</B
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Extract the elements after the head of a list, which must be non-empty.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:init"
><A NAME="v%3Ainit"
></A
></A
><B
>init</B
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Return all the elements of a list except the last one.
 The list must be finite and non-empty.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:null"
><A NAME="v%3Anull"
></A
></A
><B
>null</B
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Test whether a list is empty.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:length"
><A NAME="v%3Alength"
></A
></A
><B
>length</B
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Alength"
>length</A
></TT
> returns the length of a finite list as an <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TT
>.
 It is an instance of the more general Data.List.genericLength,
 the result type of which may be any kind of number.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:!!"
><A NAME="v%3A%21%21"
></A
></A
><B
>(!!)</B
> ::  [a] -&gt; <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>List index (subscript) operator, starting from 0.
 It is an instance of the more general Data.List.genericIndex,
 which takes an index of any integral type.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:reverse"
><A NAME="v%3Areverse"
></A
></A
><B
>reverse</B
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Areverse"
>reverse</A
></TT
> <TT
>xs</TT
> returns the elements of <TT
>xs</TT
> in reverse order.
 <TT
>xs</TT
> must be finite.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="12"
><A NAME="12"
>Reducing lists (folds)
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldl"
><A NAME="v%3Afoldl"
></A
></A
><B
>foldl</B
> ::  (a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Afoldl"
>foldl</A
></TT
>, applied to a binary operator, a starting value (typically
 the left-identity of the operator), and a list, reduces the list
 using the binary operator, from left to right:
</P
><PRE
> foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn
</PRE
><P
>The list must be finite.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldl1"
><A NAME="v%3Afoldl1"
></A
></A
><B
>foldl1</B
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Afoldl1"
>foldl1</A
></TT
> is a variant of <TT
><A HREF="Prelude.html#v%3Afoldl"
>foldl</A
></TT
> that has no starting value argument,
 and thus must be applied to non-empty lists.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldr"
><A NAME="v%3Afoldr"
></A
></A
><B
>foldr</B
> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; b</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Afoldr"
>foldr</A
></TT
>, applied to a binary operator, a starting value (typically
 the right-identity of the operator), and a list, reduces the list
 using the binary operator, from right to left:
</P
><PRE
> foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:foldr1"
><A NAME="v%3Afoldr1"
></A
></A
><B
>foldr1</B
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Afoldr1"
>foldr1</A
></TT
> is a variant of <TT
><A HREF="Prelude.html#v%3Afoldr"
>foldr</A
></TT
> that has no starting value argument,
 and thus must be applied to non-empty lists.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="13"
><A NAME="13"
>Special folds
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:and"
><A NAME="v%3Aand"
></A
></A
><B
>and</B
> :: [<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aand"
>and</A
></TT
> returns the conjunction of a Boolean list.  For the result to be
 <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
>, the list must be finite; <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
></TT
>, however, results from a <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
></TT
>
 value at a finite index of a finite or infinite list.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:or"
><A NAME="v%3Aor"
></A
></A
><B
>or</B
> :: [<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aor"
>or</A
></TT
> returns the disjunction of a Boolean list.  For the result to be
 <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
></TT
>, the list must be finite; <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
>, however, results from a <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
>
 value at a finite index of a finite or infinite list.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:any"
><A NAME="v%3Aany"
></A
></A
><B
>any</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Applied to a predicate and a list, <TT
><A HREF="Prelude.html#v%3Aany"
>any</A
></TT
> determines if any element
 of the list satisfies the predicate.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:all"
><A NAME="v%3Aall"
></A
></A
><B
>all</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
>Applied to a predicate and a list, <TT
><A HREF="Prelude.html#v%3Aall"
>all</A
></TT
> determines if all elements
 of the list satisfy the predicate.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sum"
><A NAME="v%3Asum"
></A
></A
><B
>sum</B
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Asum"
>sum</A
></TT
> function computes the sum of a finite list of numbers.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:product"
><A NAME="v%3Aproduct"
></A
></A
><B
>product</B
> :: <A HREF="Prelude.html#t%3ANum"
>Num</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Aproduct"
>product</A
></TT
> function computes the product of a finite list of numbers.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:concat"
><A NAME="v%3Aconcat"
></A
></A
><B
>concat</B
> ::  [[a]] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
>Concatenate a list of lists.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:concatMap"
><A NAME="v%3AconcatMap"
></A
></A
><B
>concatMap</B
> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="doc"
>Map a function over a list and concatenate the results.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:maximum"
><A NAME="v%3Amaximum"
></A
></A
><B
>maximum</B
> :: <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Amaximum"
>maximum</A
></TT
> returns the maximum value from a list,
 which must be non-empty, finite, and of an ordered type.
 It is a special case of <TT
><A HREF="Data-List.html#v%3AmaximumBy"
>maximumBy</A
></TT
>, which allows the
 programmer to supply their own comparison function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:minimum"
><A NAME="v%3Aminimum"
></A
></A
><B
>minimum</B
> :: <A HREF="Prelude.html#t%3AOrd"
>Ord</A
> a =&gt; [a] -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aminimum"
>minimum</A
></TT
> returns the minimum value from a list,
 which must be non-empty, finite, and of an ordered type.
 It is a special case of <TT
><A HREF="Data-List.html#v%3AminimumBy"
>minimumBy</A
></TT
>, which allows the
 programmer to supply their own comparison function.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="14"
><A NAME="14"
>Building lists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="15"
><A NAME="15"
>Scans
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanl"
><A NAME="v%3Ascanl"
></A
></A
><B
>scanl</B
> ::  (a -&gt; b -&gt; a) -&gt; a -&gt; [b] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Ascanl"
>scanl</A
></TT
> is similar to <TT
><A HREF="Prelude.html#v%3Afoldl"
>foldl</A
></TT
>, but returns a list of successive
 reduced values from the left:
</P
><PRE
> scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...]
</PRE
><P
>Note that
</P
><PRE
> last (scanl f z xs) == foldl f z xs.
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanl1"
><A NAME="v%3Ascanl1"
></A
></A
><B
>scanl1</B
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Ascanl1"
>scanl1</A
></TT
> is a variant of <TT
><A HREF="Prelude.html#v%3Ascanl"
>scanl</A
></TT
> that has no starting value argument:
</P
><PRE
> scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanr"
><A NAME="v%3Ascanr"
></A
></A
><B
>scanr</B
> ::  (a -&gt; b -&gt; b) -&gt; b -&gt; [a] -&gt; [b]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Ascanr"
>scanr</A
></TT
> is the right-to-left dual of <TT
><A HREF="Prelude.html#v%3Ascanl"
>scanl</A
></TT
>.
 Note that
</P
><PRE
> head (scanr f z xs) == foldr f z xs.
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:scanr1"
><A NAME="v%3Ascanr1"
></A
></A
><B
>scanr1</B
> ::  (a -&gt; a -&gt; a) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Ascanr1"
>scanr1</A
></TT
> is a variant of <TT
><A HREF="Prelude.html#v%3Ascanr"
>scanr</A
></TT
> that has no starting value argument.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="16"
><A NAME="16"
>Infinite lists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:iterate"
><A NAME="v%3Aiterate"
></A
></A
><B
>iterate</B
> ::  (a -&gt; a) -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Aiterate"
>iterate</A
></TT
> <TT
>f x</TT
> returns an infinite list of repeated applications
 of <TT
>f</TT
> to <TT
>x</TT
>:
</P
><PRE
> iterate f x == [x, f x, f (f x), ...]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:repeat"
><A NAME="v%3Arepeat"
></A
></A
><B
>repeat</B
> ::  a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Arepeat"
>repeat</A
></TT
> <TT
>x</TT
> is an infinite list, with <TT
>x</TT
> the value of every element.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:replicate"
><A NAME="v%3Areplicate"
></A
></A
><B
>replicate</B
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; a -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Areplicate"
>replicate</A
></TT
> <TT
>n x</TT
> is a list of length <TT
>n</TT
> with <TT
>x</TT
> the value of
 every element.
 It is an instance of the more general Data.List.genericReplicate,
 in which <TT
>n</TT
> may be of any integral type.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:cycle"
><A NAME="v%3Acycle"
></A
></A
><B
>cycle</B
> ::  [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Acycle"
>cycle</A
></TT
> ties a finite list into a circular one, or equivalently,
 the infinite repetition of the original list.  It is the identity
 on infinite lists.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="17"
><A NAME="17"
>Sublists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:take"
><A NAME="v%3Atake"
></A
></A
><B
>take</B
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Atake"
>take</A
></TT
> <TT
>n</TT
>, applied to a list <TT
>xs</TT
>, returns the prefix of <TT
>xs</TT
>
 of length <TT
>n</TT
>, or <TT
>xs</TT
> itself if <TT
>n &gt; <TT
><A HREF="Prelude.html#v%3Alength"
>length</A
></TT
> xs</TT
>:
</P
><PRE
> take 5 &quot;Hello World!&quot; == &quot;Hello&quot;
 take 3 [1,2,3,4,5] == [1,2,3]
 take 3 [1,2] == [1,2]
 take 3 [] == []
 take (-1) [1,2] == []
 take 0 [1,2] == []
</PRE
><P
>It is an instance of the more general Data.List.genericTake,
 in which <TT
>n</TT
> may be of any integral type.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:drop"
><A NAME="v%3Adrop"
></A
></A
><B
>drop</B
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Adrop"
>drop</A
></TT
> <TT
>n xs</TT
> returns the suffix of <TT
>xs</TT
>
 after the first <TT
>n</TT
> elements, or <TT
>[]</TT
> if <TT
>n &gt; <TT
><A HREF="Prelude.html#v%3Alength"
>length</A
></TT
> xs</TT
>:
</P
><PRE
> drop 6 &quot;Hello World!&quot; == &quot;World!&quot;
 drop 3 [1,2,3,4,5] == [4,5]
 drop 3 [1,2] == []
 drop 3 [] == []
 drop (-1) [1,2] == [1,2]
 drop 0 [1,2] == [1,2]
</PRE
><P
>It is an instance of the more general Data.List.genericDrop,
 in which <TT
>n</TT
> may be of any integral type.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:splitAt"
><A NAME="v%3AsplitAt"
></A
></A
><B
>splitAt</B
> ::  <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3AsplitAt"
>splitAt</A
></TT
> <TT
>n xs</TT
> returns a tuple where first element is <TT
>xs</TT
> prefix of
 length <TT
>n</TT
> and second element is the remainder of the list:
</P
><PRE
> splitAt 6 &quot;Hello World!&quot; == (&quot;Hello &quot;,&quot;World!&quot;)
 splitAt 3 [1,2,3,4,5] == ([1,2,3],[4,5])
 splitAt 1 [1,2,3] == ([1],[2,3])
 splitAt 3 [1,2,3] == ([1,2,3],[])
 splitAt 4 [1,2,3] == ([1,2,3],[])
 splitAt 0 [1,2,3] == ([],[1,2,3])
 splitAt (-1) [1,2,3] == ([],[1,2,3])
</PRE
><P
>It is equivalent to <TT
>(<TT
><A HREF="Prelude.html#v%3Atake"
>take</A
></TT
> n xs, <TT
><A HREF="Prelude.html#v%3Adrop"
>drop</A
></TT
> n xs)</TT
>.
 <TT
><A HREF="Prelude.html#v%3AsplitAt"
>splitAt</A
></TT
> is an instance of the more general Data.List.genericSplitAt,
 in which <TT
>n</TT
> may be of any integral type.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:takeWhile"
><A NAME="v%3AtakeWhile"
></A
></A
><B
>takeWhile</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3AtakeWhile"
>takeWhile</A
></TT
>, applied to a predicate <TT
>p</TT
> and a list <TT
>xs</TT
>, returns the
 longest prefix (possibly empty) of <TT
>xs</TT
> of elements that satisfy <TT
>p</TT
>:
</P
><PRE
> takeWhile (&lt; 3) [1,2,3,4,1,2,3,4] == [1,2]
 takeWhile (&lt; 9) [1,2,3] == [1,2,3]
 takeWhile (&lt; 0) [1,2,3] == []
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:dropWhile"
><A NAME="v%3AdropWhile"
></A
></A
><B
>dropWhile</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; [a]</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3AdropWhile"
>dropWhile</A
></TT
> <TT
>p xs</TT
> returns the suffix remaining after <TT
><A HREF="Prelude.html#v%3AtakeWhile"
>takeWhile</A
></TT
> <TT
>p xs</TT
>:
</P
><PRE
> dropWhile (&lt; 3) [1,2,3,4,5,1,2,3] == [3,4,5,1,2,3]
 dropWhile (&lt; 9) [1,2,3] == []
 dropWhile (&lt; 0) [1,2,3] == [1,2,3]
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:span"
><A NAME="v%3Aspan"
></A
></A
><B
>span</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Aspan"
>span</A
></TT
>, applied to a predicate <TT
>p</TT
> and a list <TT
>xs</TT
>, returns a tuple where
 first element is longest prefix (possibly empty) of <TT
>xs</TT
> of elements that
 satisfy <TT
>p</TT
> and second element is the remainder of the list:
</P
><PRE
> span (&lt; 3) [1,2,3,4,1,2,3,4] == ([1,2],[3,4,1,2,3,4])
 span (&lt; 9) [1,2,3] == ([1,2,3],[])
 span (&lt; 0) [1,2,3] == ([],[1,2,3])
</PRE
><P
><TT
><A HREF="Prelude.html#v%3Aspan"
>span</A
></TT
> <TT
>p xs</TT
> is equivalent to <TT
>(<TT
><A HREF="Prelude.html#v%3AtakeWhile"
>takeWhile</A
></TT
> p xs, <TT
><A HREF="Prelude.html#v%3AdropWhile"
>dropWhile</A
></TT
> p xs)</TT
>
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:break"
><A NAME="v%3Abreak"
></A
></A
><B
>break</B
> ::  (a -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>) -&gt; [a] -&gt; ([a], [a])</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><A HREF="Prelude.html#v%3Abreak"
>break</A
></TT
>, applied to a predicate <TT
>p</TT
> and a list <TT
>xs</TT
>, returns a tuple where
 first element is longest prefix (possibly empty) of <TT
>xs</TT
> of elements that
 <EM
>do not satisfy</EM
> <TT
>p</TT
> and second element is the remainder of the list:
</P
><PRE
> break (&gt; 3) [1,2,3,4,1,2,3,4] == ([1,2,3],[4,1,2,3,4])
 break (&lt; 9) [1,2,3] == ([],[1,2,3])
 break (&gt; 9) [1,2,3] == ([1,2,3],[])
</PRE
><P
><TT
><A HREF="Prelude.html#v%3Abreak"
>break</A
></TT
> <TT
>p</TT
> is equivalent to <TT
><TT
><A HREF="Prelude.html#v%3Aspan"
>span</A
></TT
> (<TT
><A HREF="Prelude.html#v%3Anot"
>not</A
></TT
> . p)</TT
>.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="18"
><A NAME="18"
>Searching lists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:elem"
><A NAME="v%3Aelem"
></A
></A
><B
>elem</B
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aelem"
>elem</A
></TT
> is the list membership predicate, usually written in infix form,
 e.g., <TT
>x `elem` xs</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:notElem"
><A NAME="v%3AnotElem"
></A
></A
><B
>notElem</B
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [a] -&gt; <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3AnotElem"
>notElem</A
></TT
> is the negation of <TT
><A HREF="Prelude.html#v%3Aelem"
>elem</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lookup"
><A NAME="v%3Alookup"
></A
></A
><B
>lookup</B
> :: <A HREF="Prelude.html#t%3AEq"
>Eq</A
> a =&gt; a -&gt; [(a, b)] -&gt; <A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> b</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Alookup"
>lookup</A
></TT
> <TT
>key assocs</TT
> looks up a key in an association list.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="19"
><A NAME="19"
>Zipping and unzipping lists
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zip"
><A NAME="v%3Azip"
></A
></A
><B
>zip</B
> ::  [a] -&gt; [b] -&gt; [(a, b)]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Azip"
>zip</A
></TT
> takes two lists and returns a list of corresponding pairs.
 If one input list is short, excess elements of the longer list are
 discarded.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zip3"
><A NAME="v%3Azip3"
></A
></A
><B
>zip3</B
> ::  [a] -&gt; [b] -&gt; [c] -&gt; [(a, b, c)]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Azip3"
>zip3</A
></TT
> takes three lists and returns a list of triples, analogous to
 <TT
><A HREF="Prelude.html#v%3Azip"
>zip</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zipWith"
><A NAME="v%3AzipWith"
></A
></A
><B
>zipWith</B
> ::  (a -&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3AzipWith"
>zipWith</A
></TT
> generalises <TT
><A HREF="Prelude.html#v%3Azip"
>zip</A
></TT
> by zipping with the function given
 as the first argument, instead of a tupling function.
 For example, <TT
><TT
><A HREF="Prelude.html#v%3AzipWith"
>zipWith</A
></TT
> (+)</TT
> is applied to two lists to produce the
 list of corresponding sums.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:zipWith3"
><A NAME="v%3AzipWith3"
></A
></A
><B
>zipWith3</B
> ::  (a -&gt; b -&gt; c -&gt; d) -&gt; [a] -&gt; [b] -&gt; [c] -&gt; [d]</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3AzipWith3"
>zipWith3</A
></TT
> function takes a function which combines three
 elements, as well as three lists and returns a list of their point-wise
 combination, analogous to <TT
><A HREF="Prelude.html#v%3AzipWith"
>zipWith</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unzip"
><A NAME="v%3Aunzip"
></A
></A
><B
>unzip</B
> ::  [(a, b)] -&gt; ([a], [b])</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aunzip"
>unzip</A
></TT
> transforms a list of pairs into a list of first components
 and a list of second components.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unzip3"
><A NAME="v%3Aunzip3"
></A
></A
><B
>unzip3</B
> ::  [(a, b, c)] -&gt; ([a], [b], [c])</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Aunzip3"
>unzip3</A
></TT
> function takes a list of triples and returns three
 lists, analogous to <TT
><A HREF="Prelude.html#v%3Aunzip"
>unzip</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="20"
><A NAME="20"
>Functions on strings
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lines"
><A NAME="v%3Alines"
></A
></A
><B
>lines</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [<A HREF="Prelude.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Alines"
>lines</A
></TT
> breaks a string up into a list of strings at newline
 characters.  The resulting strings do not contain newlines.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:words"
><A NAME="v%3Awords"
></A
></A
><B
>words</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [<A HREF="Prelude.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Awords"
>words</A
></TT
> breaks a string up into a list of words, which were delimited
 by white space.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unlines"
><A NAME="v%3Aunlines"
></A
></A
><B
>unlines</B
> :: [<A HREF="Prelude.html#t%3AString"
>String</A
>] -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aunlines"
>unlines</A
></TT
> is an inverse operation to <TT
><A HREF="Prelude.html#v%3Alines"
>lines</A
></TT
>.
 It joins lines, after appending a terminating newline to each.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unwords"
><A NAME="v%3Aunwords"
></A
></A
><B
>unwords</B
> :: [<A HREF="Prelude.html#t%3AString"
>String</A
>] -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
><TT
><A HREF="Prelude.html#v%3Aunwords"
>unwords</A
></TT
> is an inverse operation to <TT
><A HREF="Prelude.html#v%3Awords"
>words</A
></TT
>.
 It joins words with separating spaces.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="21"
><A NAME="21"
>Converting to and from <TT
>String</TT
>
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="22"
><A NAME="22"
>Converting to <TT
>String</TT
>
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ShowS"
><A NAME="t%3AShowS"
></A
></A
><B
>ShowS</B
> = <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>The <TT
>shows</TT
> functions return a function that prepends the
 output <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> to an existing <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>.  This allows constant-time
 concatenation of results using function composition.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Show"
><A NAME="t%3AShow"
></A
></A
><B
>Show</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Conversion of values to readable <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>s.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> or <TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
>.
</P
><P
>Derived instances of <TT
><A HREF="Prelude.html#t%3AShow"
>Show</A
></TT
> have the following properties, which
 are compatible with derived instances of Text.Read.Read:
</P
><UL
><LI
> The result of <TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
> is a syntactically correct Haskell
   expression containing only constants, given the fixity
   declarations in force at the point where the type is declared.
   It contains only the constructor names defined in the data type,
   parentheses, and spaces.  When labelled constructor fields are
   used, braces, commas, field names, and equal signs are also used.
</LI
><LI
> If the constructor is defined to be an infix operator, then
   <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> will produce infix applications of the constructor.
</LI
><LI
> the representation will be enclosed in parentheses if the
   precedence of the top-level constructor in <TT
>x</TT
> is less than <TT
>d</TT
>
   (associativity is ignored).  Thus, if <TT
>d</TT
> is <TT
>0</TT
> then the result
   is never surrounded in parentheses; if <TT
>d</TT
> is <TT
>11</TT
> it is always
   surrounded in parentheses, unless it is an atomic expression.
</LI
><LI
> If the constructor is defined using record syntax, then <TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
>
   will produce the record-syntax form, with the fields given in the
   same order as the original declaration.
</LI
></UL
><P
>For example, given the declarations
</P
><PRE
> infixr 5 :^:
 data Tree a =  Leaf a  |  Tree a :^: Tree a
</PRE
><P
>the derived instance of <TT
><A HREF="Prelude.html#t%3AShow"
>Show</A
></TT
> is equivalent to
</P
><PRE
> instance (Show a) =&gt; Show (Tree a) where

        showsPrec d (Leaf m) = showParen (d &gt; app_prec) $
             showString &quot;Leaf &quot; . showsPrec (app_prec+1) m
          where app_prec = 10

        showsPrec d (u :^: v) = showParen (d &gt; up_prec) $
             showsPrec (up_prec+1) u . 
             showString &quot; :^: &quot;      .
             showsPrec (up_prec+1) v
          where up_prec = 5
</PRE
><P
>Note that right-associativity of <TT
>:^:</TT
> is ignored.  For example,
</P
><UL
><LI
> <TT
><TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
> (Leaf 1 :^: Leaf 2 :^: Leaf 3)</TT
> produces the string
   <TT
>&quot;Leaf 1 :^: (Leaf 2 :^: Leaf 3)&quot;</TT
>.
</LI
></UL
></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:showsPrec"
><A NAME="v%3AshowsPrec"
></A
></A
><B
>showsPrec</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>the operator precedence of the enclosing
 context (a number from <TT
>0</TT
> to <TT
>11</TT
>).
 Function application has precedence <TT
>10</TT
>.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; a</TD
><TD CLASS="rdoc"
>the value to be converted to a <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>Convert a value to a readable <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>.
</P
><P
><TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> should satisfy the law
</P
><PRE
> showsPrec d x r ++ s  ==  showsPrec d x (r ++ s)
</PRE
><P
>Derived instances of Text.Read.Read and <TT
><A HREF="Prelude.html#t%3AShow"
>Show</A
></TT
> satisfy the following:
</P
><UL
><LI
> <TT
>(x,&quot;&quot;)</TT
> is an element of
   <TT
>(Text.Read.readsPrec d (<TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> d x &quot;&quot;))</TT
>.
</LI
></UL
><P
>That is, Text.Read.readsPrec parses the string produced by
 <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
>, and delivers the value that <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> started with.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:show"
><A NAME="v%3Ashow"
></A
></A
><B
>show</B
> :: a -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>A specialised variant of <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
>, using precedence context
 zero, and returning an ordinary <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showList"
><A NAME="v%3AshowList"
></A
></A
><B
>showList</B
> :: [a] -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="doc"
>The method <TT
><A HREF="Prelude.html#v%3AshowList"
>showList</A
></TT
> is provided to allow the programmer to
 give a specialised way of showing lists of values.
 For example, this is used by the predefined <TT
><A HREF="Prelude.html#t%3AShow"
>Show</A
></TT
> instance of
 the <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TT
> type, where values of type <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> should be shown
 in double quotes, rather than between square brackets.
</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:Show')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Show" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Typeable.html#t%3ATyCon"
>TyCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Typeable.html#t%3ATypeRep"
>TypeRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AArithException"
>ArithException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AErrorCall"
>ErrorCall</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ASomeException"
>SomeException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Text-Read-Lex.html#t%3ALexeme"
>Lexeme</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO-Error.html#t%3AIOErrorType"
>IOErrorType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AIOException"
>IOException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Exit.html#t%3AExitCode"
>ExitCode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AArrayException"
>ArrayException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AAsyncException"
>AsyncException</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3AAssertionFailed"
>AssertionFailed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ADeadlock"
>Deadlock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ABlockedIndefinitely"
>BlockedIndefinitely</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ABlockedOnDeadMVar"
>BlockedOnDeadMVar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO.html#t%3ABufferMode"
>BufferMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> HandleType</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO.html#t%3AHandle"
>Handle</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> HashData</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Dynamic.html#t%3ADynamic"
>Dynamic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="GHC-Conc.html#t%3AThreadStatus"
>ThreadStatus</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="GHC-Conc.html#t%3ABlockReason"
>BlockReason</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Concurrent.html#t%3AThreadId"
>ThreadId</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ANestedAtomically"
>NestedAtomically</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ANonTermination"
>NonTermination</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ANoMethodError"
>NoMethodError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ARecUpdError"
>RecUpdError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ARecConError"
>RecConError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3ARecSelError"
>RecSelError</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-Exception-Base.html#t%3APatternMatchFail"
>PatternMatchFail</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="System-IO.html#t%3AHandlePosn"
>HandlePosn</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Control-OldException.html#t%3AException"
>Exception</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Data.html#t%3AFixity"
>Fixity</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Data.html#t%3AConstrRep"
>ConstrRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Data.html#t%3ADataRep"
>DataRep</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Data.html#t%3AConstr"
>Constr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Data.html#t%3ADataType"
>DataType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Monoid.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Monoid.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> Timeout</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> <A HREF="Data-Version.html#t%3AVersion"
>Version</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> ([] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Foreign-Ptr.html#t%3APtr"
>Ptr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Foreign-Ptr.html#t%3AFunPtr"
>FunPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> ([::] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Foreign-ForeignPtr.html#t%3AForeignPtr"
>ForeignPtr</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Fixed.html#t%3AHasResolution"
>HasResolution</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Fixed.html#t%3AFixed"
>Fixed</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Monoid.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Monoid.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Data-Monoid.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> (a -&gt; b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="Control-Monad-ST.html#t%3AST"
>ST</A
> s a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a b c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a b c d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a b c d e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
> a b c d e f)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
> a b c d e f g)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,)</A
> a b c d e f g h)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,)</A
> a b c d e f g h i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,)</A
> a b c d e f g h i j)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j, <A HREF="Prelude.html#t%3AShow"
>Show</A
> k) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,)</A
> a b c d e f g h i j k)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j, <A HREF="Prelude.html#t%3AShow"
>Show</A
> k, <A HREF="Prelude.html#t%3AShow"
>Show</A
> l) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,)</A
> a b c d e f g h i j k l)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j, <A HREF="Prelude.html#t%3AShow"
>Show</A
> k, <A HREF="Prelude.html#t%3AShow"
>Show</A
> l, <A HREF="Prelude.html#t%3AShow"
>Show</A
> m) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j, <A HREF="Prelude.html#t%3AShow"
>Show</A
> k, <A HREF="Prelude.html#t%3AShow"
>Show</A
> l, <A HREF="Prelude.html#t%3AShow"
>Show</A
> m, <A HREF="Prelude.html#t%3AShow"
>Show</A
> n) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AShow"
>Show</A
> a, <A HREF="Prelude.html#t%3AShow"
>Show</A
> b, <A HREF="Prelude.html#t%3AShow"
>Show</A
> c, <A HREF="Prelude.html#t%3AShow"
>Show</A
> d, <A HREF="Prelude.html#t%3AShow"
>Show</A
> e, <A HREF="Prelude.html#t%3AShow"
>Show</A
> f, <A HREF="Prelude.html#t%3AShow"
>Show</A
> g, <A HREF="Prelude.html#t%3AShow"
>Show</A
> h, <A HREF="Prelude.html#t%3AShow"
>Show</A
> i, <A HREF="Prelude.html#t%3AShow"
>Show</A
> j, <A HREF="Prelude.html#t%3AShow"
>Show</A
> k, <A HREF="Prelude.html#t%3AShow"
>Show</A
> l, <A HREF="Prelude.html#t%3AShow"
>Show</A
> m, <A HREF="Prelude.html#t%3AShow"
>Show</A
> n, <A HREF="Prelude.html#t%3AShow"
>Show</A
> o) =&gt; <A HREF="Prelude.html#t%3AShow"
>Show</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n o)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:shows"
><A NAME="v%3Ashows"
></A
></A
><B
>shows</B
> :: <A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; a -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="doc"
>equivalent to <TT
><A HREF="Prelude.html#v%3AshowsPrec"
>showsPrec</A
></TT
> with a precedence of 0.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showChar"
><A NAME="v%3AshowChar"
></A
></A
><B
>showChar</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="doc"
>utility function converting a <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TT
> to a show function that
 simply prepends the character unchanged.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showString"
><A NAME="v%3AshowString"
></A
></A
><B
>showString</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="doc"
>utility function converting a <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> to a show function that
 simply prepends the string unchanged.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:showParen"
><A NAME="v%3AshowParen"
></A
></A
><B
>showParen</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
> -&gt; <A HREF="Prelude.html#t%3AShowS"
>ShowS</A
></TD
></TR
><TR
><TD CLASS="doc"
>utility function that surrounds the inner show function with
 parentheses when the <TT
><A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TT
> parameter is <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="23"
><A NAME="23"
>Converting from <TT
>String</TT
>
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:ReadS"
><A NAME="t%3AReadS"
></A
></A
><B
>ReadS</B
> a = <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; [(a, <A HREF="Prelude.html#t%3AString"
>String</A
>)]</TD
></TR
><TR
><TD CLASS="doc"
><P
>A parser for a type <TT
>a</TT
>, represented as a function that takes a
 <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> and returns a list of possible parses as <TT
>(a,<TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>)</TT
> pairs.
</P
><P
>Note that this kind of backtracking parser is very inefficient;
 reading a large structure may be quite slow (cf <TT
><A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP"
>ReadP</A
></TT
>).
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>class</SPAN
>  <A NAME="t:Read"
><A NAME="t%3ARead"
></A
></A
><B
>Read</B
> a  <SPAN CLASS="keyword"
>where</SPAN
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Parsing of <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>s, producing values.
</P
><P
>Minimal complete definition: <TT
><A HREF="Prelude.html#v%3AreadsPrec"
>readsPrec</A
></TT
> (or, for GHC only, <TT
><A HREF="Text-Read.html#v%3AreadPrec"
>readPrec</A
></TT
>)
</P
><P
>Derived instances of <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> make the following assumptions, which
 derived instances of Text.Show.Show obey:
</P
><UL
><LI
> If the constructor is defined to be an infix operator, then the
   derived <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> instance will parse only infix applications of
   the constructor (not the prefix form).
</LI
><LI
> Associativity is not used to reduce the occurrence of parentheses,
   although precedence may be.
</LI
><LI
> If the constructor is defined using record syntax, the derived <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
>
   will parse only the record-syntax form, and furthermore, the fields
   must be given in the same order as the original declaration.
</LI
><LI
> The derived <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> instance allows arbitrary Haskell whitespace
   between tokens of the input string.  Extra parentheses are also
   allowed.
</LI
></UL
><P
>For example, given the declarations
</P
><PRE
> infixr 5 :^:
 data Tree a =  Leaf a  |  Tree a :^: Tree a
</PRE
><P
>the derived instance of <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> in Haskell 98 is equivalent to
</P
><PRE
> instance (Read a) =&gt; Read (Tree a) where

         readsPrec d r =  readParen (d &gt; app_prec)
                          (\r -&gt; [(Leaf m,t) |
                                  (&quot;Leaf&quot;,s) &lt;- lex r,
                                  (m,t) &lt;- readsPrec (app_prec+1) s]) r

                       ++ readParen (d &gt; up_prec)
                          (\r -&gt; [(u:^:v,w) |
                                  (u,s) &lt;- readsPrec (up_prec+1) r,
                                  (&quot;:^:&quot;,t) &lt;- lex s,
                                  (v,w) &lt;- readsPrec (up_prec+1) t]) r

           where app_prec = 10
                 up_prec = 5
</PRE
><P
>Note that right-associativity of <TT
>:^:</TT
> is unused.
</P
><P
>The derived instance in GHC is equivalent to
</P
><PRE
> instance (Read a) =&gt; Read (Tree a) where

         readPrec = parens $ (prec app_prec $ do
                                  Ident &quot;Leaf&quot; &lt;- lexP
                                  m &lt;- step readPrec
                                  return (Leaf m))

                      +++ (prec up_prec $ do
                                  u &lt;- step readPrec
                                  Symbol &quot;:^:&quot; &lt;- lexP
                                  v &lt;- step readPrec
                                  return (u :^: v))

           where app_prec = 10
                 up_prec = 5

         readListPrec = readListPrecDefault
</PRE
></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:readsPrec"
><A NAME="v%3AreadsPrec"
></A
></A
><B
>readsPrec</B
></TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="arg"
>:: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
>the operator precedence of the enclosing
 context (a number from <TT
>0</TT
> to <TT
>11</TT
>).
 Function application has precedence <TT
>10</TT
>.
</TD
></TR
><TR
><TD CLASS="arg"
>-&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="ndoc" COLSPAN="2"
><P
>attempts to parse a value from the front of the string, returning
 a list of (parsed value, remaining string) pairs.  If there is no
 successful parse, the returned list is empty.
</P
><P
>Derived instances of <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> and Text.Show.Show satisfy the following:
</P
><UL
><LI
> <TT
>(x,&quot;&quot;)</TT
> is an element of
   <TT
>(<TT
><A HREF="Prelude.html#v%3AreadsPrec"
>readsPrec</A
></TT
> d (Text.Show.showsPrec d x &quot;&quot;))</TT
>.
</LI
></UL
><P
>That is, <TT
><A HREF="Prelude.html#v%3AreadsPrec"
>readsPrec</A
></TT
> parses the string produced by
 Text.Show.showsPrec, and delivers the value that
 Text.Show.showsPrec started with.
</P
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readList"
><A NAME="v%3AreadList"
></A
></A
><B
>readList</B
> :: <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> [a]</TD
></TR
><TR
><TD CLASS="doc"
>The method <TT
><A HREF="Prelude.html#v%3AreadList"
>readList</A
></TT
> is provided to allow the programmer to
 give a specialised way of parsing lists of values.
 For example, this is used by the predefined <TT
><A HREF="Prelude.html#t%3ARead"
>Read</A
></TT
> instance of
 the <TT
><A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TT
> type, where values of type <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
> should be are
 expected to use double quotes, rather than square brackets.
</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:Read')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Read" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3ADouble"
>Double</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AFloat"
>Float</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Int.html#t%3AInt8"
>Int8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Int.html#t%3AInt16"
>Int16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Int.html#t%3AInt32"
>Int32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Int.html#t%3AInt64"
>Int64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Ordering.html#t%3AOrdering"
>Ordering</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Word.html#t%3AWord"
>Word</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Word.html#t%3AWord8"
>Word8</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Word.html#t%3AWord16"
>Word16</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Word.html#t%3AWord32"
>Word32</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Word.html#t%3AWord64"
>Word64</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Text-Read-Lex.html#t%3ALexeme"
>Lexeme</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntMax"
>CUIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACIntMax"
>CIntMax</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACUIntPtr"
>CUIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACIntPtr"
>CIntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACTime"
>CTime</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACClock"
>CClock</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACSigAtomic"
>CSigAtomic</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACWchar"
>CWchar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACSize"
>CSize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACPtrdiff"
>CPtrdiff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACLDouble"
>CLDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACDouble"
>CDouble</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACFloat"
>CFloat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACULLong"
>CULLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACLLong"
>CLLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACULong"
>CULong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACLong"
>CLong</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACUInt"
>CUInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACInt"
>CInt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACUShort"
>CUShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACShort"
>CShort</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACUChar"
>CUChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACSChar"
>CSChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-C-Types.html#t%3ACChar"
>CChar</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-IO.html#t%3AIOMode"
>IOMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Exit.html#t%3AExitCode"
>ExitCode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-IO.html#t%3ABufferMode"
>BufferMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Char.html#t%3AGeneralCategory"
>GeneralCategory</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-Ptr.html#t%3AIntPtr"
>IntPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Foreign-Ptr.html#t%3AWordPtr"
>WordPtr</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3AFd"
>Fd</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACRLim"
>CRLim</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACTcflag"
>CTcflag</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACSpeed"
>CSpeed</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACCc"
>CCc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACUid"
>CUid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACNlink"
>CNlink</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACGid"
>CGid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACSsize"
>CSsize</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACPid"
>CPid</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACOff"
>COff</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACMode"
>CMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACIno"
>CIno</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-Posix-Types.html#t%3ACDev"
>CDev</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="System-IO.html#t%3ASeekMode"
>SeekMode</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Monoid.html#t%3AAny"
>Any</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Monoid.html#t%3AAll"
>All</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> <A HREF="Data-Version.html#t%3AVersion"
>Version</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> ([] a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3AIntegral"
>Integral</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> a) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Ratio.html#t%3ARatio"
>Ratio</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> ([::] a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Prelude.html#t%3AMaybe"
>Maybe</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARealFloat"
>RealFloat</A
> a) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Complex.html#t%3AComplex"
>Complex</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Monoid.html#t%3ALast"
>Last</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Monoid.html#t%3AFirst"
>First</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Monoid.html#t%3AProduct"
>Product</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Monoid.html#t%3ASum"
>Sum</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Data-Monoid.html#t%3ADual"
>Dual</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="Prelude.html#t%3AEither"
>Either</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%29"
>(,)</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="GHC-Arr.html#t%3AIx"
>Ix</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="GHC-Arr.html#t%3AArray"
>Array</A
> a b)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%29"
>(,,)</A
> a b c)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%29"
>(,,,)</A
> a b c d)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%29"
>(,,,,)</A
> a b c d e)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%29"
>(,,,,,)</A
> a b c d e f)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,)</A
> a b c d e f g)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,)</A
> a b c d e f g h)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,)</A
> a b c d e f g h i)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,)</A
> a b c d e f g h i j)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j, <A HREF="Prelude.html#t%3ARead"
>Read</A
> k) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,)</A
> a b c d e f g h i j k)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j, <A HREF="Prelude.html#t%3ARead"
>Read</A
> k, <A HREF="Prelude.html#t%3ARead"
>Read</A
> l) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,)</A
> a b c d e f g h i j k l)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j, <A HREF="Prelude.html#t%3ARead"
>Read</A
> k, <A HREF="Prelude.html#t%3ARead"
>Read</A
> l, <A HREF="Prelude.html#t%3ARead"
>Read</A
> m) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j, <A HREF="Prelude.html#t%3ARead"
>Read</A
> k, <A HREF="Prelude.html#t%3ARead"
>Read</A
> l, <A HREF="Prelude.html#t%3ARead"
>Read</A
> m, <A HREF="Prelude.html#t%3ARead"
>Read</A
> n) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n)</TD
></TR
><TR
><TD CLASS="decl"
>(<A HREF="Prelude.html#t%3ARead"
>Read</A
> a, <A HREF="Prelude.html#t%3ARead"
>Read</A
> b, <A HREF="Prelude.html#t%3ARead"
>Read</A
> c, <A HREF="Prelude.html#t%3ARead"
>Read</A
> d, <A HREF="Prelude.html#t%3ARead"
>Read</A
> e, <A HREF="Prelude.html#t%3ARead"
>Read</A
> f, <A HREF="Prelude.html#t%3ARead"
>Read</A
> g, <A HREF="Prelude.html#t%3ARead"
>Read</A
> h, <A HREF="Prelude.html#t%3ARead"
>Read</A
> i, <A HREF="Prelude.html#t%3ARead"
>Read</A
> j, <A HREF="Prelude.html#t%3ARead"
>Read</A
> k, <A HREF="Prelude.html#t%3ARead"
>Read</A
> l, <A HREF="Prelude.html#t%3ARead"
>Read</A
> m, <A HREF="Prelude.html#t%3ARead"
>Read</A
> n, <A HREF="Prelude.html#t%3ARead"
>Read</A
> o) =&gt; <A HREF="Prelude.html#t%3ARead"
>Read</A
> (<A HREF="../ghc-prim/GHC-Tuple.html#t%3A%28%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%2C%29"
>(,,,,,,,,,,,,,,)</A
> a b c d e f g h i j k l m n o)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:reads"
><A NAME="v%3Areads"
></A
></A
><B
>reads</B
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>equivalent to <TT
><A HREF="Prelude.html#v%3AreadsPrec"
>readsPrec</A
></TT
> with a precedence of 0.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readParen"
><A NAME="v%3AreadParen"
></A
></A
><B
>readParen</B
> ::  <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
> -&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a -&gt; <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> a</TD
></TR
><TR
><TD CLASS="doc"
><P
><TT
><TT
><A HREF="Prelude.html#v%3AreadParen"
>readParen</A
></TT
> <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> p</TT
> parses what <TT
>p</TT
> parses, but surrounded with
 parentheses.
</P
><P
><TT
><TT
><A HREF="Prelude.html#v%3AreadParen"
>readParen</A
></TT
> <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3AFalse"
>False</A
></TT
> p</TT
> parses what <TT
>p</TT
> parses, but optionally
 surrounded with parentheses.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:read"
><A NAME="v%3Aread"
></A
></A
><B
>read</B
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; a</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Aread"
>read</A
></TT
> function reads input from a string, which must be
 completely consumed by the input process.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:lex"
><A NAME="v%3Alex"
></A
></A
><B
>lex</B
> :: <A HREF="Prelude.html#t%3AReadS"
>ReadS</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The <TT
><A HREF="Prelude.html#v%3Alex"
>lex</A
></TT
> function reads a single lexeme from the input, discarding
 initial white space, and returning the characters that constitute the
 lexeme.  If the input string contains only white space, <TT
><A HREF="Prelude.html#v%3Alex"
>lex</A
></TT
> returns a
 single successful `lexeme' consisting of the empty string.  (Thus
 <TT
><TT
><A HREF="Prelude.html#v%3Alex"
>lex</A
></TT
> &quot;&quot; = [(&quot;&quot;,&quot;&quot;)]</TT
>.)  If there is no legal lexeme at the
 beginning of the input string, <TT
><A HREF="Prelude.html#v%3Alex"
>lex</A
></TT
> fails (i.e. returns <TT
>[]</TT
>).
</P
><P
>This lexer is not completely faithful to the Haskell lexical syntax
 in the following respects:
</P
><UL
><LI
> Qualified names are not handled properly
</LI
><LI
> Octal and hexadecimal numerics are not recognized as a single token
</LI
><LI
> Comments are not treated properly
</LI
></UL
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="24"
><A NAME="24"
>Basic Input and output
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:IO"
><A NAME="t%3AIO"
></A
></A
><B
>IO</B
> a </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>A value of type <TT
><TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> a</TT
> is a computation which, when performed,
does some I/O before returning a value of type <TT
>a</TT
>.  
</P
><P
>There is really only one way to &quot;perform&quot; an I/O action: bind it to
<TT
>Main.main</TT
> in your program.  When your program is run, the I/O will
be performed.  It isn't possible to perform I/O from an arbitrary
function, unless that function is itself in the <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> monad and called
at some point, directly or indirectly, from <TT
>Main.main</TT
>.
</P
><P
><TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> is a monad, so <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> actions can be combined using either the do-notation
or the <TT
><A HREF="Prelude.html#v%3A%3E%3E"
>&gt;&gt;</A
></TT
> and <TT
><A HREF="Prelude.html#v%3A%3E%3E%3D"
>&gt;&gt;=</A
></TT
> operations from the <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> class.
</P
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:IO')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:IO" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Prelude.html#t%3AFunctor"
>Functor</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Data-Typeable.html#t%3ATypeable1"
>Typeable1</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Monad-Fix.html#t%3AMonadFix"
>MonadFix</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Control-Applicative.html#t%3AApplicative"
>Applicative</A
> <A HREF="Prelude.html#t%3AIO"
>IO</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-Printf.html#t%3AHPrintfType"
>HPrintfType</A
> (<A HREF="Prelude.html#t%3AIO"
>IO</A
> a)</TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Text-Printf.html#t%3APrintfType"
>PrintfType</A
> (<A HREF="Prelude.html#t%3AIO"
>IO</A
> a)</TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="25"
><A NAME="25"
>Simple I/O operations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="26"
><A NAME="26"
>Output functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:putChar"
><A NAME="v%3AputChar"
></A
></A
><B
>putChar</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>Write a character to the standard output device
 (same as <TT
><A HREF="System-IO.html#v%3AhPutChar"
>hPutChar</A
></TT
> <TT
><A HREF="System-IO.html#v%3Astdout"
>stdout</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:putStr"
><A NAME="v%3AputStr"
></A
></A
><B
>putStr</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>Write a string to the standard output device
 (same as <TT
><A HREF="System-IO.html#v%3AhPutStr"
>hPutStr</A
></TT
> <TT
><A HREF="System-IO.html#v%3Astdout"
>stdout</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:putStrLn"
><A NAME="v%3AputStrLn"
></A
></A
><B
>putStrLn</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>The same as <TT
><A HREF="Prelude.html#v%3AputStr"
>putStr</A
></TT
>, but adds a newline character.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:print"
><A NAME="v%3Aprint"
></A
></A
><B
>print</B
> :: <A HREF="Prelude.html#t%3AShow"
>Show</A
> a =&gt; a -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The <TT
><A HREF="Prelude.html#v%3Aprint"
>print</A
></TT
> function outputs a value of any printable type to the
 standard output device.
 Printable types are those that are instances of class <TT
><A HREF="Prelude.html#t%3AShow"
>Show</A
></TT
>; <TT
><A HREF="Prelude.html#v%3Aprint"
>print</A
></TT
>
 converts values to strings for output using the <TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
> operation and
 adds a newline.
</P
><P
>For example, a program to print the first 20 integers and their
 powers of 2 could be written as:
</P
><PRE
> main = print ([(n, 2^n) | n &lt;- [0..19]])
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="27"
><A NAME="27"
>Input functions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getChar"
><A NAME="v%3AgetChar"
></A
></A
><B
>getChar</B
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="doc"
>Read a character from the standard input device
 (same as <TT
><A HREF="System-IO.html#v%3AhGetChar"
>hGetChar</A
></TT
> <TT
><A HREF="System-IO.html#v%3Astdin"
>stdin</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getLine"
><A NAME="v%3AgetLine"
></A
></A
><B
>getLine</B
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>Read a line from the standard input device
 (same as <TT
><A HREF="System-IO.html#v%3AhGetLine"
>hGetLine</A
></TT
> <TT
><A HREF="System-IO.html#v%3Astdin"
>stdin</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:getContents"
><A NAME="v%3AgetContents"
></A
></A
><B
>getContents</B
> :: <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3AgetContents"
>getContents</A
></TT
> operation returns all user input as a single string,
 which is read lazily as it is needed
 (same as <TT
><A HREF="System-IO.html#v%3AhGetContents"
>hGetContents</A
></TT
> <TT
><A HREF="System-IO.html#v%3Astdin"
>stdin</A
></TT
>).
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:interact"
><A NAME="v%3Ainteract"
></A
></A
><B
>interact</B
> :: (<A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
>) -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3Ainteract"
>interact</A
></TT
> function takes a function of type <TT
>String-&gt;String</TT
>
 as its argument.  The entire input from the standard input device is
 passed to this function as its argument, and the resulting string is
 output on the standard output device.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section3"
><A NAME="28"
><A NAME="28"
>Files
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:FilePath"
><A NAME="t%3AFilePath"
></A
></A
><B
>FilePath</B
> = <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>File and directory names are values of type <TT
><A HREF="Prelude.html#t%3AString"
>String</A
></TT
>, whose precise
 meaning is operating system dependent. Files can be opened, yielding a
 handle which can then be used to operate on the contents of that file.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readFile"
><A NAME="v%3AreadFile"
></A
></A
><B
>readFile</B
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="Prelude.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3AreadFile"
>readFile</A
></TT
> function reads a file and
 returns the contents of the file as a string.
 The file is read lazily, on demand, as with <TT
><A HREF="Prelude.html#v%3AgetContents"
>getContents</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:writeFile"
><A NAME="v%3AwriteFile"
></A
></A
><B
>writeFile</B
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
>The computation <TT
><A HREF="Prelude.html#v%3AwriteFile"
>writeFile</A
></TT
> <TT
>file str</TT
> function writes the string <TT
>str</TT
>,
 to the file <TT
>file</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:appendFile"
><A NAME="v%3AappendFile"
></A
></A
><B
>appendFile</B
> :: <A HREF="Prelude.html#t%3AFilePath"
>FilePath</A
> -&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> <A HREF="../ghc-prim/GHC-Unit.html#t%3A%28%29"
>()</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The computation <TT
><A HREF="Prelude.html#v%3AappendFile"
>appendFile</A
></TT
> <TT
>file str</TT
> function appends the string <TT
>str</TT
>,
 to the file <TT
>file</TT
>.
</P
><P
>Note that <TT
><A HREF="Prelude.html#v%3AwriteFile"
>writeFile</A
></TT
> and <TT
><A HREF="Prelude.html#v%3AappendFile"
>appendFile</A
></TT
> write a literal string
 to a file.  To write a value of any printable type, as with <TT
><A HREF="Prelude.html#v%3Aprint"
>print</A
></TT
>,
 use the <TT
><A HREF="Prelude.html#v%3Ashow"
>show</A
></TT
> function to convert the value to a string first.
</P
><PRE
> main = appendFile &quot;squares&quot; (show [(x,x*x) | x &lt;- [0,0.1..2]])
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readIO"
><A NAME="v%3AreadIO"
></A
></A
><B
>readIO</B
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3AreadIO"
>readIO</A
></TT
> function is similar to <TT
><A HREF="Prelude.html#v%3Aread"
>read</A
></TT
> except that it signals
 parse failure to the <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> monad instead of terminating the program.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:readLn"
><A NAME="v%3AreadLn"
></A
></A
><B
>readLn</B
> :: <A HREF="Prelude.html#t%3ARead"
>Read</A
> a =&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>The <TT
><A HREF="Prelude.html#v%3AreadLn"
>readLn</A
></TT
> function combines <TT
><A HREF="Prelude.html#v%3AgetLine"
>getLine</A
></TT
> and <TT
><A HREF="Prelude.html#v%3AreadIO"
>readIO</A
></TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="29"
><A NAME="29"
>Exception handling in the I/O monad
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:IOError"
><A NAME="t%3AIOError"
></A
></A
><B
>IOError</B
> = <A HREF="Control-Exception-Base.html#t%3AIOException"
>IOException</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>The Haskell 98 type for exceptions in the <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> monad.
 Any I/O operation may raise an <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
> instead of returning a result.
 For a more general type of exception, including also those that arise
 in pure code, see Control.Exception.Exception.
</P
><P
>In Haskell 98, this is an opaque type.
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:ioError"
><A NAME="v%3AioError"
></A
></A
><B
>ioError</B
> ::  <A HREF="Prelude.html#t%3AIOError"
>IOError</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="doc"
>Raise an <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
> in the <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> monad.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:userError"
><A NAME="v%3AuserError"
></A
></A
><B
>userError</B
> :: <A HREF="Prelude.html#t%3AString"
>String</A
> -&gt; <A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>Construct an <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
> value with a string describing the error.
 The <TT
><A HREF="Prelude.html#v%3Afail"
>fail</A
></TT
> method of the <TT
><A HREF="Prelude.html#t%3AIO"
>IO</A
></TT
> instance of the <TT
><A HREF="Prelude.html#t%3AMonad"
>Monad</A
></TT
> class raises a
 <TT
><A HREF="Prelude.html#v%3AuserError"
>userError</A
></TT
>, thus:
</P
><PRE
> instance Monad IO where 
   ...
   fail s = ioError (userError s)
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:catch"
><A NAME="v%3Acatch"
></A
></A
><B
>catch</B
> ::  <A HREF="Prelude.html#t%3AIO"
>IO</A
> a -&gt; (<A HREF="Prelude.html#t%3AIOError"
>IOError</A
> -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a) -&gt; <A HREF="Prelude.html#t%3AIO"
>IO</A
> a</TD
></TR
><TR
><TD CLASS="doc"
><P
>The <TT
><A HREF="Prelude.html#v%3Acatch"
>catch</A
></TT
> function establishes a handler that receives any <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
>
 raised in the action protected by <TT
><A HREF="Prelude.html#v%3Acatch"
>catch</A
></TT
>.  An <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
> is caught by
 the most recent handler established by <TT
><A HREF="Prelude.html#v%3Acatch"
>catch</A
></TT
>.  These handlers are
 not selective: all <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
>s are caught.  Exception propagation
 must be explicitly provided in a handler by re-raising any unwanted
 exceptions.  For example, in
</P
><PRE
> f = catch g (\e -&gt; if IO.isEOFError e then return [] else ioError e)
</PRE
><P
>the function <TT
>f</TT
> returns <TT
>[]</TT
> when an end-of-file exception
 (cf. System.IO.Error.isEOFError) occurs in <TT
>g</TT
>; otherwise, the
 exception is propagated to the next outer handler.
</P
><P
>When an exception propagates outside the main program, the Haskell
 system prints the associated <TT
><A HREF="Prelude.html#t%3AIOError"
>IOError</A
></TT
> value and exits the program.
</P
><P
>Non-I/O exceptions are not caught by this variant; to catch all
 exceptions, use Control.Exception.catch from <A HREF="Control-Exception.html"
>Control.Exception</A
>.
</P
></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.4.2</TD
></TR
></TABLE
></BODY
></HTML
>