Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 70ec89744a04da80369b4702b2c37256 > files > 1292

ghc-doc-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
>Language.Haskell.Syntax</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_Language-Haskell-Syntax.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"
>haskell-src-1.0.1.3: Manipulating Haskell source code</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"
>Language.Haskell.Syntax</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"
>experimental</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"
>Modules
</A
></DT
><DT
><A HREF="#2"
>Declarations
</A
></DT
><DT
><A HREF="#3"
>Class Assertions and Contexts
</A
></DT
><DT
><A HREF="#4"
>Types
</A
></DT
><DT
><A HREF="#5"
>Expressions
</A
></DT
><DT
><A HREF="#6"
>Patterns
</A
></DT
><DT
><A HREF="#7"
>Literals
</A
></DT
><DT
><A HREF="#8"
>Variables, Constructors and Operators
</A
></DT
><DT
><A HREF="#9"
>Builtin names
</A
></DT
><DD
><DL
><DT
><A HREF="#10"
>Modules
</A
></DT
><DT
><A HREF="#11"
>Main function of a program
</A
></DT
><DT
><A HREF="#12"
>Constructors
</A
></DT
><DT
><A HREF="#13"
>Type constructors
</A
></DT
></DL
></DD
><DT
><A HREF="#14"
>Source coordinates
</A
></DT
></DL
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>A suite of datatypes describing the abstract syntax of Haskell 98
 <A HREF="http://www.haskell.org/onlinereport/"
>http://www.haskell.org/onlinereport/</A
> plus a few extensions:
</P
><UL
><LI
> multi-parameter type classes
</LI
><LI
> parameters of type class assertions are unrestricted
</LI
></UL
><P
>This module has been changed so that show is a real show.
 For GHC, we also derive Typeable and Data for all types.
</P
></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"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsModule"
>HsModule</A
>  = <A HREF="#v%3AHsModule"
>HsModule</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
> (<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
>]) [<A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</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%3AHsExportSpec"
>HsExportSpec</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsEVar"
>HsEVar</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEAbs"
>HsEAbs</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEThingAll"
>HsEThingAll</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEThingWith"
>HsEThingWith</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEModuleContents"
>HsEModuleContents</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsImportDecl"
>HsImportDecl</A
>  = <A HREF="#v%3AHsImportDecl"
>HsImportDecl</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AimportLoc"
>importLoc</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AimportModule"
>importModule</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AimportQualified"
>importQualified</A
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AimportAs"
>importAs</A
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AimportSpecs"
>importSpecs</A
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>, [<A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
>])</TD
></TR
></TABLE
>}</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsImportSpec"
>HsImportSpec</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsIVar"
>HsIVar</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIAbs"
>HsIAbs</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIThingAll"
>HsIThingAll</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIThingWith"
>HsIThingWith</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsAssoc"
>HsAssoc</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsAssocNone"
>HsAssocNone</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsAssocLeft"
>HsAssocLeft</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsAssocRight"
>HsAssocRight</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsDecl"
>HsDecl</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsTypeDecl"
>HsTypeDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsDataDecl"
>HsDataDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsInfixDecl"
>HsInfixDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsNewTypeDecl"
>HsNewTypeDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsClassDecl"
>HsClassDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsInstDecl"
>HsInstDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsDefaultDecl"
>HsDefaultDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTypeSig"
>HsTypeSig</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsFunBind"
>HsFunBind</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPatBind"
>HsPatBind</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsForeignImport"
>HsForeignImport</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsForeignExport"
>HsForeignExport</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsConDecl"
>HsConDecl</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsConDecl"
>HsConDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsRecDecl"
>HsRecDecl</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [([<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>], <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
>)]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsBangType"
>HsBangType</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsBangedTy"
>HsBangedTy</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsUnBangedTy"
>HsUnBangedTy</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsMatch"
>HsMatch</A
>  = <A HREF="#v%3AHsMatch"
>HsMatch</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</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%3AHsRhs"
>HsRhs</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsUnGuardedRhs"
>HsUnGuardedRhs</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsGuardedRhss"
>HsGuardedRhss</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsGuardedRhs"
>HsGuardedRhs</A
>  = <A HREF="#v%3AHsGuardedRhs"
>HsGuardedRhs</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</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%3AHsSafety"
>HsSafety</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsSafe"
>HsSafe</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsUnsafe"
>HsUnsafe</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsQualType"
>HsQualType</A
>  = <A HREF="#v%3AHsQualType"
>HsQualType</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AHsContext"
>HsContext</A
> = [<A HREF="Language-Haskell-Syntax.html#t%3AHsAsst"
>HsAsst</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AHsAsst"
>HsAsst</A
> = (<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>, [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</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%3AHsType"
>HsType</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsTyFun"
>HsTyFun</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTyTuple"
>HsTyTuple</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTyApp"
>HsTyApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTyVar"
>HsTyVar</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTyCon"
>HsTyCon</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsExp"
>HsExp</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsVar"
>HsVar</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsCon"
>HsCon</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsLit"
>HsLit</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsInfixApp"
>HsInfixApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsApp"
>HsApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsNegApp"
>HsNegApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsLambda"
>HsLambda</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsLet"
>HsLet</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIf"
>HsIf</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsCase"
>HsCase</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsDo"
>HsDo</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTuple"
>HsTuple</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsList"
>HsList</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsParen"
>HsParen</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsLeftSection"
>HsLeftSection</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsRightSection"
>HsRightSection</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsRecConstr"
>HsRecConstr</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsRecUpdate"
>HsRecUpdate</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEnumFrom"
>HsEnumFrom</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEnumFromTo"
>HsEnumFromTo</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEnumFromThen"
>HsEnumFromThen</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsEnumFromThenTo"
>HsEnumFromThenTo</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsListComp"
>HsListComp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsExpTypeSig"
>HsExpTypeSig</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsAsPat"
>HsAsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsWildCard"
>HsWildCard</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIrrPat"
>HsIrrPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsStmt"
>HsStmt</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsGenerator"
>HsGenerator</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsQualifier"
>HsQualifier</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsLetStmt"
>HsLetStmt</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsFieldUpdate"
>HsFieldUpdate</A
>  = <A HREF="#v%3AHsFieldUpdate"
>HsFieldUpdate</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsAlt"
>HsAlt</A
>  = <A HREF="#v%3AHsAlt"
>HsAlt</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</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%3AHsGuardedAlts"
>HsGuardedAlts</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsUnGuardedAlt"
>HsUnGuardedAlt</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsGuardedAlts"
>HsGuardedAlts</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
>]</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsGuardedAlt"
>HsGuardedAlt</A
>  = <A HREF="#v%3AHsGuardedAlt"
>HsGuardedAlt</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</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%3AHsPat"
>HsPat</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsPVar"
>HsPVar</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPLit"
>HsPLit</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPNeg"
>HsPNeg</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPInfixApp"
>HsPInfixApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPApp"
>HsPApp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPTuple"
>HsPTuple</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPList"
>HsPList</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPParen"
>HsPParen</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPRec"
>HsPRec</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
>]</TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPAsPat"
>HsPAsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPWildCard"
>HsPWildCard</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsPIrrPat"
>HsPIrrPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsPatField"
>HsPatField</A
>  = <A HREF="#v%3AHsPFieldPat"
>HsPFieldPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</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%3AHsLiteral"
>HsLiteral</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsChar"
>HsChar</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsString"
>HsString</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsInt"
>HsInt</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsFrac"
>HsFrac</A
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsCharPrim"
>HsCharPrim</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsStringPrim"
>HsStringPrim</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsIntPrim"
>HsIntPrim</A
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsFloatPrim"
>HsFloatPrim</A
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsDoublePrim"
>HsDoublePrim</A
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A HREF="#t%3AModule"
>Module</A
>  = <A HREF="#v%3AModule"
>Module</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</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%3AHsQName"
>HsQName</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AQual"
>Qual</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AUnQual"
>UnQual</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3ASpecial"
>Special</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsName"
>HsName</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsIdent"
>HsIdent</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsSymbol"
>HsSymbol</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsQOp"
>HsQOp</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsQVarOp"
>HsQVarOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsQConOp"
>HsQConOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsOp"
>HsOp</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsVarOp"
>HsVarOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsConOp"
>HsConOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsSpecialCon"
>HsSpecialCon</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsUnitCon"
>HsUnitCon</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsListCon"
>HsListCon</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsFunCon"
>HsFunCon</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsTupleCon"
>HsTupleCon</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsCons"
>HsCons</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3AHsCName"
>HsCName</A
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="decl"
>= <A HREF="#v%3AHsVarName"
>HsVarName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
>| <A HREF="#v%3AHsConName"
>HsConName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aprelude_mod"
>prelude_mod</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amain_mod"
>main_mod</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amain_name"
>main_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunit_con_name"
>unit_con_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atuple_con_name"
>tuple_con_name</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alist_cons_name"
>list_cons_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunit_con"
>unit_con</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atuple_con"
>tuple_con</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunit_tycon_name"
>unit_tycon_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afun_tycon_name"
>fun_tycon_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alist_tycon_name"
>list_tycon_name</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atuple_tycon_name"
>tuple_tycon_name</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aunit_tycon"
>unit_tycon</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afun_tycon"
>fun_tycon</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Alist_tycon"
>list_tycon</A
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atuple_tycon"
>tuple_tycon</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A HREF="#t%3ASrcLoc"
>SrcLoc</A
>  = <A HREF="#v%3ASrcLoc"
>SrcLoc</A
> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="recfield"
><A HREF="#v%3AsrcFilename"
>srcFilename</A
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AsrcLine"
>srcLine</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
><TR
><TD CLASS="recfield"
><A HREF="#v%3AsrcColumn"
>srcColumn</A
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
></TR
></TABLE
>}</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"
>Modules
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsModule"
><A NAME="t%3AHsModule"
></A
></A
><B
>HsModule</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A Haskell source module.
</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:HsModule"
><A NAME="v%3AHsModule"
></A
></A
><B
>HsModule</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
> (<A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
>]) [<A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsModule')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsModule" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsModule"
>HsModule</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsModule"
>HsModule</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsModule"
>HsModule</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsModule"
>HsModule</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsExportSpec"
><A NAME="t%3AHsExportSpec"
></A
></A
><B
>HsExportSpec</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Export specification.
</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:HsEVar"
><A NAME="v%3AHsEVar"
></A
></A
><B
>HsEVar</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>variable
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEAbs"
><A NAME="v%3AHsEAbs"
></A
></A
><B
>HsEAbs</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
><TT
>T</TT
>:
 a class or datatype exported abstractly,
 or a type synonym.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEThingAll"
><A NAME="v%3AHsEThingAll"
></A
></A
><B
>HsEThingAll</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
><TT
>T(..)</TT
>:
 a class exported with all of its methods, or
 a datatype exported with all of its constructors.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEThingWith"
><A NAME="v%3AHsEThingWith"
></A
></A
><B
>HsEThingWith</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
>]</TD
><TD CLASS="rdoc"
><TT
>T(C_1,...,C_n)</TT
>:
 a class exported with some of its methods, or
 a datatype exported with some of its constructors.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEModuleContents"
><A NAME="v%3AHsEModuleContents"
></A
></A
><B
>HsEModuleContents</B
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
><TT
>module M</TT
>:
 re-export a module.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsExportSpec')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsExportSpec" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExportSpec"
>HsExportSpec</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsImportDecl"
><A NAME="t%3AHsImportDecl"
></A
></A
><B
>HsImportDecl</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Import declaration.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsImportDecl"
><A NAME="v%3AHsImportDecl"
></A
></A
><B
>HsImportDecl</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:importLoc"
><A NAME="v%3AimportLoc"
></A
></A
><B
>importLoc</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
><TD CLASS="rdoc"
>position of the <TT
>import</TT
> keyword.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:importModule"
><A NAME="v%3AimportModule"
></A
></A
><B
>importModule</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>name of the module imported.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:importQualified"
><A NAME="v%3AimportQualified"
></A
></A
><B
>importQualified</B
> :: <A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
><TD CLASS="rdoc"
>imported <TT
>qualified</TT
>?
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:importAs"
><A NAME="v%3AimportAs"
></A
></A
><B
>importAs</B
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
><TD CLASS="rdoc"
>optional alias name in an
 <TT
>as</TT
> clause.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:importSpecs"
><A NAME="v%3AimportSpecs"
></A
></A
><B
>importSpecs</B
> :: <A HREF="../base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
>, [<A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
>])</TD
><TD CLASS="rdoc"
>optional list of import specifications.
 The <TT
><A HREF="../ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TT
> is <TT
><A HREF="../ghc-prim/GHC-Bool.html#v%3ATrue"
>True</A
></TT
> if the names are excluded
 by <TT
>hiding</TT
>.
</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsImportDecl')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsImportDecl" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportDecl"
>HsImportDecl</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsImportSpec"
><A NAME="t%3AHsImportSpec"
></A
></A
><B
>HsImportSpec</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Import specification.
</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:HsIVar"
><A NAME="v%3AHsIVar"
></A
></A
><B
>HsIVar</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>variable
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIAbs"
><A NAME="v%3AHsIAbs"
></A
></A
><B
>HsIAbs</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
><TT
>T</TT
>:
 the name of a class, datatype or type synonym.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIThingAll"
><A NAME="v%3AHsIThingAll"
></A
></A
><B
>HsIThingAll</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
><TT
>T(..)</TT
>:
 a class imported with all of its methods, or
 a datatype imported with all of its constructors.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIThingWith"
><A NAME="v%3AHsIThingWith"
></A
></A
><B
>HsIThingWith</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
>]</TD
><TD CLASS="rdoc"
><TT
>T(C_1,...,C_n)</TT
>:
 a class imported with some of its methods, or
 a datatype imported with some of its constructors.
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsImportSpec')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsImportSpec" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsImportSpec"
>HsImportSpec</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsAssoc"
><A NAME="t%3AHsAssoc"
></A
></A
><B
>HsAssoc</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Associativity of an operator.
</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:HsAssocNone"
><A NAME="v%3AHsAssocNone"
></A
></A
><B
>HsAssocNone</B
></TD
><TD CLASS="rdoc"
>non-associative operator (declared with <TT
>infix</TT
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsAssocLeft"
><A NAME="v%3AHsAssocLeft"
></A
></A
><B
>HsAssocLeft</B
></TD
><TD CLASS="rdoc"
>left-associative operator (declared with <TT
>infixl</TT
>).
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsAssocRight"
><A NAME="v%3AHsAssocRight"
></A
></A
><B
>HsAssocRight</B
></TD
><TD CLASS="rdoc"
>right-associative operator (declared with <TT
>infixr</TT
>)
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsAssoc')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsAssoc" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Declarations
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsDecl"
><A NAME="t%3AHsDecl"
></A
></A
><B
>HsDecl</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsTypeDecl"
><A NAME="v%3AHsTypeDecl"
></A
></A
><B
>HsTypeDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsDataDecl"
><A NAME="v%3AHsDataDecl"
></A
></A
><B
>HsDataDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsInfixDecl"
><A NAME="v%3AHsInfixDecl"
></A
></A
><B
>HsInfixDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAssoc"
>HsAssoc</A
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsNewTypeDecl"
><A NAME="v%3AHsNewTypeDecl"
></A
></A
><B
>HsNewTypeDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsClassDecl"
><A NAME="v%3AHsClassDecl"
></A
></A
><B
>HsClassDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsInstDecl"
><A NAME="v%3AHsInstDecl"
></A
></A
><B
>HsInstDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>] [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsDefaultDecl"
><A NAME="v%3AHsDefaultDecl"
></A
></A
><B
>HsDefaultDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTypeSig"
><A NAME="v%3AHsTypeSig"
></A
></A
><B
>HsTypeSig</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsFunBind"
><A NAME="v%3AHsFunBind"
></A
></A
><B
>HsFunBind</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPatBind"
><A NAME="v%3AHsPatBind"
></A
></A
><B
>HsPatBind</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsForeignImport"
><A NAME="v%3AHsForeignImport"
></A
></A
><B
>HsForeignImport</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsForeignExport"
><A NAME="v%3AHsForeignExport"
></A
></A
><B
>HsForeignExport</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsDecl')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsDecl" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsConDecl"
><A NAME="t%3AHsConDecl"
></A
></A
><B
>HsConDecl</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Declaration of a data constructor.
</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:HsConDecl"
><A NAME="v%3AHsConDecl"
></A
></A
><B
>HsConDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
>]</TD
><TD CLASS="rdoc"
>ordinary data constructor
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsRecDecl"
><A NAME="v%3AHsRecDecl"
></A
></A
><B
>HsRecDecl</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [([<A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
>], <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
>)]</TD
><TD CLASS="rdoc"
>record constructor
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsConDecl')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsConDecl" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsConDecl"
>HsConDecl</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsBangType"
><A NAME="t%3AHsBangType"
></A
></A
><B
>HsBangType</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The type of a constructor argument or field, optionally including
 a strictness annotation.
</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:HsBangedTy"
><A NAME="v%3AHsBangedTy"
></A
></A
><B
>HsBangedTy</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
>strict component, marked with &quot;<TT
>!</TT
>&quot;
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsUnBangedTy"
><A NAME="v%3AHsUnBangedTy"
></A
></A
><B
>HsUnBangedTy</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
>non-strict component
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsBangType')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsBangType" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsBangType"
>HsBangType</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsMatch"
><A NAME="t%3AHsMatch"
></A
></A
><B
>HsMatch</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Clauses of a function binding.
</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:HsMatch"
><A NAME="v%3AHsMatch"
></A
></A
><B
>HsMatch</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsMatch')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsMatch" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsMatch"
>HsMatch</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsRhs"
><A NAME="t%3AHsRhs"
></A
></A
><B
>HsRhs</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The right hand side of a function or pattern binding.
</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:HsUnGuardedRhs"
><A NAME="v%3AHsUnGuardedRhs"
></A
></A
><B
>HsUnGuardedRhs</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>unguarded right hand side (<EM
>exp</EM
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsGuardedRhss"
><A NAME="v%3AHsGuardedRhss"
></A
></A
><B
>HsGuardedRhss</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
>]</TD
><TD CLASS="rdoc"
>guarded right hand side (<EM
>gdrhs</EM
>)
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsRhs')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsRhs" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsRhs"
>HsRhs</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsGuardedRhs"
><A NAME="t%3AHsGuardedRhs"
></A
></A
><B
>HsGuardedRhs</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A guarded right hand side <TT
>|</TT
> <EM
>exp</EM
> <TT
>=</TT
> <EM
>exp</EM
>.
 The first expression will be Boolean-valued.
</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:HsGuardedRhs"
><A NAME="v%3AHsGuardedRhs"
></A
></A
><B
>HsGuardedRhs</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsGuardedRhs')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsGuardedRhs" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedRhs"
>HsGuardedRhs</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsSafety"
><A NAME="t%3AHsSafety"
></A
></A
><B
>HsSafety</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Safety level for invoking a foreign entity
</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:HsSafe"
><A NAME="v%3AHsSafe"
></A
></A
><B
>HsSafe</B
></TD
><TD CLASS="rdoc"
>call may generate callbacks
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsUnsafe"
><A NAME="v%3AHsUnsafe"
></A
></A
><B
>HsUnsafe</B
></TD
><TD CLASS="rdoc"
>call will not generate callbacks
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsSafety')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsSafety" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSafety"
>HsSafety</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Class Assertions and Contexts
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsQualType"
><A NAME="t%3AHsQualType"
></A
></A
><B
>HsQualType</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A type qualified with a context.
   An unqualified type has an empty context.
</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:HsQualType"
><A NAME="v%3AHsQualType"
></A
></A
><B
>HsQualType</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsContext"
>HsContext</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsQualType')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsQualType" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:HsContext"
><A NAME="t%3AHsContext"
></A
></A
><B
>HsContext</B
> = [<A HREF="Language-Haskell-Syntax.html#t%3AHsAsst"
>HsAsst</A
>]</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:HsAsst"
><A NAME="t%3AHsAsst"
></A
></A
><B
>HsAsst</B
> = (<A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
>, [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>])</TD
></TR
><TR
><TD CLASS="doc"
>Class assertions.
   In Haskell 98, the argument would be a <EM
>tyvar</EM
>, but this definition
   allows multiple parameters, and allows them to be <EM
>type</EM
>s.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Types
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsType"
><A NAME="t%3AHsType"
></A
></A
><B
>HsType</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Haskell types and type constructors.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsTyFun"
><A NAME="v%3AHsTyFun"
></A
></A
><B
>HsTyFun</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
>function type
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTyTuple"
><A NAME="v%3AHsTyTuple"
></A
></A
><B
>HsTyTuple</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
>]</TD
><TD CLASS="rdoc"
>tuple type
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTyApp"
><A NAME="v%3AHsTyApp"
></A
></A
><B
>HsTyApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
><TD CLASS="rdoc"
>application of a type constructor
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTyVar"
><A NAME="v%3AHsTyVar"
></A
></A
><B
>HsTyVar</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>type variable
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTyCon"
><A NAME="v%3AHsTyCon"
></A
></A
><B
>HsTyCon</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>named type or type constructor
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsType')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsType" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>Expressions
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsExp"
><A NAME="t%3AHsExp"
></A
></A
><B
>HsExp</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><P
>Haskell expressions.
</P
><P
><EM
>Notes:</EM
>
</P
><UL
><LI
> Because it is difficult for parsers to distinguish patterns from
   expressions, they typically parse them in the same way and then check
   that they have the appropriate form.  Hence the expression type
   includes some forms that are found only in patterns.  After these
   checks, these constructors should not be used.
</LI
><LI
> The parser does not take precedence and associativity into account,
   so it will leave <TT
><A HREF="Language-Haskell-Syntax.html#v%3AHsInfixApp"
>HsInfixApp</A
></TT
>s associated to the left.
</LI
><LI
> The Language.Haskell.Pretty.Pretty instance for <TT
><A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TT
> does not
   add parentheses in printing.
</LI
></UL
></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:HsVar"
><A NAME="v%3AHsVar"
></A
></A
><B
>HsVar</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>variable
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsCon"
><A NAME="v%3AHsCon"
></A
></A
><B
>HsCon</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>data constructor
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsLit"
><A NAME="v%3AHsLit"
></A
></A
><B
>HsLit</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
><TD CLASS="rdoc"
>literal constant
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsInfixApp"
><A NAME="v%3AHsInfixApp"
></A
></A
><B
>HsInfixApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>infix application
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsApp"
><A NAME="v%3AHsApp"
></A
></A
><B
>HsApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>ordinary application
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsNegApp"
><A NAME="v%3AHsNegApp"
></A
></A
><B
>HsNegApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>negation expression <TT
>-</TT
> <EM
>exp</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsLambda"
><A NAME="v%3AHsLambda"
></A
></A
><B
>HsLambda</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>lambda expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsLet"
><A NAME="v%3AHsLet"
></A
></A
><B
>HsLet</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>] <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>local declarations with <TT
>let</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIf"
><A NAME="v%3AHsIf"
></A
></A
><B
>HsIf</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
><TT
>if</TT
> <EM
>exp</EM
> <TT
>then</TT
> <EM
>exp</EM
> <TT
>else</TT
> <EM
>exp</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsCase"
><A NAME="v%3AHsCase"
></A
></A
><B
>HsCase</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
>]</TD
><TD CLASS="rdoc"
><TT
>case</TT
> <EM
>exp</EM
> <TT
>of</TT
> <EM
>alts</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsDo"
><A NAME="v%3AHsDo"
></A
></A
><B
>HsDo</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
>]</TD
><TD CLASS="rdoc"
><TT
>do</TT
>-expression:
 the last statement in the list
 should be an expression.
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTuple"
><A NAME="v%3AHsTuple"
></A
></A
><B
>HsTuple</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
>]</TD
><TD CLASS="rdoc"
>tuple expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsList"
><A NAME="v%3AHsList"
></A
></A
><B
>HsList</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
>]</TD
><TD CLASS="rdoc"
>list expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsParen"
><A NAME="v%3AHsParen"
></A
></A
><B
>HsParen</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>parenthesized expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsLeftSection"
><A NAME="v%3AHsLeftSection"
></A
></A
><B
>HsLeftSection</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
><TD CLASS="rdoc"
>left section <TT
>(</TT
><EM
>exp</EM
> <EM
>qop</EM
><TT
>)</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsRightSection"
><A NAME="v%3AHsRightSection"
></A
></A
><B
>HsRightSection</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>right section <TT
>(</TT
><EM
>qop</EM
> <EM
>exp</EM
><TT
>)</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsRecConstr"
><A NAME="v%3AHsRecConstr"
></A
></A
><B
>HsRecConstr</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
>]</TD
><TD CLASS="rdoc"
>record construction expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsRecUpdate"
><A NAME="v%3AHsRecUpdate"
></A
></A
><B
>HsRecUpdate</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
>]</TD
><TD CLASS="rdoc"
>record update expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEnumFrom"
><A NAME="v%3AHsEnumFrom"
></A
></A
><B
>HsEnumFrom</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>unbounded arithmetic sequence,
 incrementing by 1
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEnumFromTo"
><A NAME="v%3AHsEnumFromTo"
></A
></A
><B
>HsEnumFromTo</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>bounded arithmetic sequence,
 incrementing by 1
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEnumFromThen"
><A NAME="v%3AHsEnumFromThen"
></A
></A
><B
>HsEnumFromThen</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>unbounded arithmetic sequence,
 with first two elements given
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsEnumFromThenTo"
><A NAME="v%3AHsEnumFromThenTo"
></A
></A
><B
>HsEnumFromThenTo</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>bounded arithmetic sequence,
 with first two elements given
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsListComp"
><A NAME="v%3AHsListComp"
></A
></A
><B
>HsListComp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
>]</TD
><TD CLASS="rdoc"
>list comprehension
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsExpTypeSig"
><A NAME="v%3AHsExpTypeSig"
></A
></A
><B
>HsExpTypeSig</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQualType"
>HsQualType</A
></TD
><TD CLASS="rdoc"
>expression type signature
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsAsPat"
><A NAME="v%3AHsAsPat"
></A
></A
><B
>HsAsPat</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>patterns only
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsWildCard"
><A NAME="v%3AHsWildCard"
></A
></A
><B
>HsWildCard</B
></TD
><TD CLASS="rdoc"
>patterns only
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIrrPat"
><A NAME="v%3AHsIrrPat"
></A
></A
><B
>HsIrrPat</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>patterns only
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsExp')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsExp" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsStmt"
><A NAME="t%3AHsStmt"
></A
></A
><B
>HsStmt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>This type represents both <EM
>stmt</EM
> in a <TT
>do</TT
>-expression,
   and <EM
>qual</EM
> in a list comprehension.
</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:HsGenerator"
><A NAME="v%3AHsGenerator"
></A
></A
><B
>HsGenerator</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>a generator <EM
>pat</EM
> <TT
>&lt;-</TT
> <EM
>exp</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsQualifier"
><A NAME="v%3AHsQualifier"
></A
></A
><B
>HsQualifier</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
>an <EM
>exp</EM
> by itself: in a <TT
>do</TT
>-expression,
 an action whose result is discarded;
 in a list comprehension, a guard expression
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsLetStmt"
><A NAME="v%3AHsLetStmt"
></A
></A
><B
>HsLetStmt</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
>local bindings
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsStmt')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsStmt" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsStmt"
>HsStmt</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsFieldUpdate"
><A NAME="t%3AHsFieldUpdate"
></A
></A
><B
>HsFieldUpdate</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>An <EM
>fbind</EM
> in a labeled record construction or update expression.
</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:HsFieldUpdate"
><A NAME="v%3AHsFieldUpdate"
></A
></A
><B
>HsFieldUpdate</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsFieldUpdate')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsFieldUpdate" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsFieldUpdate"
>HsFieldUpdate</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsAlt"
><A NAME="t%3AHsAlt"
></A
></A
><B
>HsAlt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>An <EM
>alt</EM
> in a <TT
>case</TT
> expression.
</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:HsAlt"
><A NAME="v%3AHsAlt"
></A
></A
><B
>HsAlt</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsDecl"
>HsDecl</A
>]</TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsAlt')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsAlt" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsAlt"
>HsAlt</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsGuardedAlts"
><A NAME="t%3AHsGuardedAlts"
></A
></A
><B
>HsGuardedAlts</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsUnGuardedAlt"
><A NAME="v%3AHsUnGuardedAlt"
></A
></A
><B
>HsUnGuardedAlt</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
><TT
>-&gt;</TT
> <EM
>exp</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsGuardedAlts"
><A NAME="v%3AHsGuardedAlts"
></A
></A
><B
>HsGuardedAlts</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
>]</TD
><TD CLASS="rdoc"
><EM
>gdpat</EM
>
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsGuardedAlts')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsGuardedAlts" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlts"
>HsGuardedAlts</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsGuardedAlt"
><A NAME="t%3AHsGuardedAlt"
></A
></A
><B
>HsGuardedAlt</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A guarded alternative <TT
>|</TT
> <EM
>exp</EM
> <TT
>-&gt;</TT
> <EM
>exp</EM
>.
 The first expression will be Boolean-valued.
</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:HsGuardedAlt"
><A NAME="v%3AHsGuardedAlt"
></A
></A
><B
>HsGuardedAlt</B
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsGuardedAlt')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsGuardedAlt" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsGuardedAlt"
>HsGuardedAlt</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="6"
><A NAME="6"
>Patterns
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsPat"
><A NAME="t%3AHsPat"
></A
></A
><B
>HsPat</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A pattern, to be matched against a value.
</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:HsPVar"
><A NAME="v%3AHsPVar"
></A
></A
><B
>HsPVar</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>variable
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPLit"
><A NAME="v%3AHsPLit"
></A
></A
><B
>HsPLit</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
><TD CLASS="rdoc"
>literal constant
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPNeg"
><A NAME="v%3AHsPNeg"
></A
></A
><B
>HsPNeg</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
>negated pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPInfixApp"
><A NAME="v%3AHsPInfixApp"
></A
></A
><B
>HsPInfixApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
>pattern with infix data constructor
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPApp"
><A NAME="v%3AHsPApp"
></A
></A
><B
>HsPApp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
><TD CLASS="rdoc"
>data constructor and argument
 patterns
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPTuple"
><A NAME="v%3AHsPTuple"
></A
></A
><B
>HsPTuple</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
><TD CLASS="rdoc"
>tuple pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPList"
><A NAME="v%3AHsPList"
></A
></A
><B
>HsPList</B
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
>]</TD
><TD CLASS="rdoc"
>list pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPParen"
><A NAME="v%3AHsPParen"
></A
></A
><B
>HsPParen</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
>parenthesized pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPRec"
><A NAME="v%3AHsPRec"
></A
></A
><B
>HsPRec</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> [<A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
>]</TD
><TD CLASS="rdoc"
>labelled pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPAsPat"
><A NAME="v%3AHsPAsPat"
></A
></A
><B
>HsPAsPat</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
><TT
>@</TT
>-pattern
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPWildCard"
><A NAME="v%3AHsPWildCard"
></A
></A
><B
>HsPWildCard</B
></TD
><TD CLASS="rdoc"
>wildcard pattern (<TT
>_</TT
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsPIrrPat"
><A NAME="v%3AHsPIrrPat"
></A
></A
><B
>HsPIrrPat</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
>irrefutable pattern (<TT
>~</TT
>)
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsPat')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsPat" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsPatField"
><A NAME="t%3AHsPatField"
></A
></A
><B
>HsPatField</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>An <EM
>fpat</EM
> in a labeled record pattern.
</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:HsPFieldPat"
><A NAME="v%3AHsPFieldPat"
></A
></A
><B
>HsPFieldPat</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPat"
>HsPat</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsPatField')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsPatField" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsPatField"
>HsPatField</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="7"
><A NAME="7"
>Literals
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsLiteral"
><A NAME="t%3AHsLiteral"
></A
></A
><B
>HsLiteral</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
><EM
>literal</EM
>.
 Values of this type hold the abstract value of the literal, not the
 precise string representation used.  For example, <TT
>10</TT
>, <TT
>0o12</TT
> and <TT
>0xa</TT
>
 have the same representation.
</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:HsChar"
><A NAME="v%3AHsChar"
></A
></A
><B
>HsChar</B
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
><TD CLASS="rdoc"
>character literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsString"
><A NAME="v%3AHsString"
></A
></A
><B
>HsString</B
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>string literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsInt"
><A NAME="v%3AHsInt"
></A
></A
><B
>HsInt</B
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
><TD CLASS="rdoc"
>integer literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsFrac"
><A NAME="v%3AHsFrac"
></A
></A
><B
>HsFrac</B
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
><TD CLASS="rdoc"
>floating point literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsCharPrim"
><A NAME="v%3AHsCharPrim"
></A
></A
><B
>HsCharPrim</B
> <A HREF="../ghc-prim/GHC-Types.html#t%3AChar"
>Char</A
></TD
><TD CLASS="rdoc"
>GHC unboxed character literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsStringPrim"
><A NAME="v%3AHsStringPrim"
></A
></A
><B
>HsStringPrim</B
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
>GHC unboxed string literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsIntPrim"
><A NAME="v%3AHsIntPrim"
></A
></A
><B
>HsIntPrim</B
> <A HREF="../integer/GHC-Integer.html#t%3AInteger"
>Integer</A
></TD
><TD CLASS="rdoc"
>GHC unboxed integer literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsFloatPrim"
><A NAME="v%3AHsFloatPrim"
></A
></A
><B
>HsFloatPrim</B
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
><TD CLASS="rdoc"
>GHC unboxed float literal
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsDoublePrim"
><A NAME="v%3AHsDoublePrim"
></A
></A
><B
>HsDoublePrim</B
> <A HREF="../base/Prelude.html#t%3ARational"
>Rational</A
></TD
><TD CLASS="rdoc"
>GHC unboxed double literal
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsLiteral')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsLiteral" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsLiteral"
>HsLiteral</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="8"
><A NAME="8"
>Variables, Constructors and Operators
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>newtype</SPAN
>  <A NAME="t:Module"
><A NAME="t%3AModule"
></A
></A
><B
>Module</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>The name of a Haskell module.
</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:Module"
><A NAME="v%3AModule"
></A
></A
><B
>Module</B
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Module')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:Module" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsQName"
><A NAME="t%3AHsQName"
></A
></A
><B
>HsQName</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>This type is used to represent qualified variables, and also
 qualified constructors.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:Qual"
><A NAME="v%3AQual"
></A
></A
><B
>Qual</B
> <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>name qualified with a module name
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:UnQual"
><A NAME="v%3AUnQual"
></A
></A
><B
>UnQual</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>unqualified name
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:Special"
><A NAME="v%3ASpecial"
></A
></A
><B
>Special</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
><TD CLASS="rdoc"
>built-in constructor with special syntax
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsQName')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsQName" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsName"
><A NAME="t%3AHsName"
></A
></A
><B
>HsName</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>This type is used to represent variables, and also constructors.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsIdent"
><A NAME="v%3AHsIdent"
></A
></A
><B
>HsIdent</B
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
><EM
>varid</EM
> or <EM
>conid</EM
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsSymbol"
><A NAME="v%3AHsSymbol"
></A
></A
><B
>HsSymbol</B
> <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
><EM
>varsym</EM
> or <EM
>consym</EM
>
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsName')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsName" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsQOp"
><A NAME="t%3AHsQOp"
></A
></A
><B
>HsQOp</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Possibly qualified infix operators (<EM
>qop</EM
>), appearing in expressions.
</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:HsQVarOp"
><A NAME="v%3AHsQVarOp"
></A
></A
><B
>HsQVarOp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>variable operator (<EM
>qvarop</EM
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsQConOp"
><A NAME="v%3AHsQConOp"
></A
></A
><B
>HsQConOp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
><TD CLASS="rdoc"
>constructor operator (<EM
>qconop</EM
>)
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsQOp')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsQOp" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsQOp"
>HsQOp</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsOp"
><A NAME="t%3AHsOp"
></A
></A
><B
>HsOp</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Operators, appearing in <TT
>infix</TT
> declarations.
</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:HsVarOp"
><A NAME="v%3AHsVarOp"
></A
></A
><B
>HsVarOp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>variable operator (<EM
>varop</EM
>)
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsConOp"
><A NAME="v%3AHsConOp"
></A
></A
><B
>HsConOp</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>constructor operator (<EM
>conop</EM
>)
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsOp')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsOp" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsOp"
>HsOp</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsSpecialCon"
><A NAME="t%3AHsSpecialCon"
></A
></A
><B
>HsSpecialCon</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>Constructors with special syntax.
 These names are never qualified, and always refer to builtin type or
 data constructors.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:HsUnitCon"
><A NAME="v%3AHsUnitCon"
></A
></A
><B
>HsUnitCon</B
></TD
><TD CLASS="rdoc"
>unit type and data constructor <TT
>()</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsListCon"
><A NAME="v%3AHsListCon"
></A
></A
><B
>HsListCon</B
></TD
><TD CLASS="rdoc"
>list type constructor <TT
>[]</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsFunCon"
><A NAME="v%3AHsFunCon"
></A
></A
><B
>HsFunCon</B
></TD
><TD CLASS="rdoc"
>function type constructor <TT
>-&gt;</TT
>
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsTupleCon"
><A NAME="v%3AHsTupleCon"
></A
></A
><B
>HsTupleCon</B
> <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
><EM
>n</EM
>-ary tuple type and data
   constructors <TT
>(,)</TT
> etc
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsCons"
><A NAME="v%3AHsCons"
></A
></A
><B
>HsCons</B
></TD
><TD CLASS="rdoc"
>list data constructor <TT
>(:)</TT
>
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsSpecialCon')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsSpecialCon" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsSpecialCon"
>HsSpecialCon</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:HsCName"
><A NAME="t%3AHsCName"
></A
></A
><B
>HsCName</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A name (<EM
>cname</EM
>) of a component of a class or data type in an <TT
>import</TT
>
 or export specification.
</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:HsVarName"
><A NAME="v%3AHsVarName"
></A
></A
><B
>HsVarName</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>name of a method or field
</TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:HsConName"
><A NAME="v%3AHsConName"
></A
></A
><B
>HsConName</B
> <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
><TD CLASS="rdoc"
>name of a data constructor
</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:HsCName')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:HsCName" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="Language-Haskell-Pretty.html#t%3APretty"
>Pretty</A
> <A HREF="Language-Haskell-Syntax.html#t%3AHsCName"
>HsCName</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="9"
><A NAME="9"
>Builtin names
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="10"
><A NAME="10"
>Modules
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:prelude_mod"
><A NAME="v%3Aprelude_mod"
></A
></A
><B
>prelude_mod</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:main_mod"
><A NAME="v%3Amain_mod"
></A
></A
><B
>main_mod</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AModule"
>Module</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="11"
><A NAME="11"
>Main function of a program
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:main_name"
><A NAME="v%3Amain_name"
></A
></A
><B
>main_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsName"
>HsName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="12"
><A NAME="12"
>Constructors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unit_con_name"
><A NAME="v%3Aunit_con_name"
></A
></A
><B
>unit_con_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tuple_con_name"
><A NAME="v%3Atuple_con_name"
></A
></A
><B
>tuple_con_name</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:list_cons_name"
><A NAME="v%3Alist_cons_name"
></A
></A
><B
>list_cons_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unit_con"
><A NAME="v%3Aunit_con"
></A
></A
><B
>unit_con</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tuple_con"
><A NAME="v%3Atuple_con"
></A
></A
><B
>tuple_con</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsExp"
>HsExp</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section2"
><A NAME="13"
><A NAME="13"
>Type constructors
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unit_tycon_name"
><A NAME="v%3Aunit_tycon_name"
></A
></A
><B
>unit_tycon_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fun_tycon_name"
><A NAME="v%3Afun_tycon_name"
></A
></A
><B
>fun_tycon_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:list_tycon_name"
><A NAME="v%3Alist_tycon_name"
></A
></A
><B
>list_tycon_name</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tuple_tycon_name"
><A NAME="v%3Atuple_tycon_name"
></A
></A
><B
>tuple_tycon_name</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsQName"
>HsQName</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:unit_tycon"
><A NAME="v%3Aunit_tycon"
></A
></A
><B
>unit_tycon</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:fun_tycon"
><A NAME="v%3Afun_tycon"
></A
></A
><B
>fun_tycon</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:list_tycon"
><A NAME="v%3Alist_tycon"
></A
></A
><B
>list_tycon</B
> :: <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tuple_tycon"
><A NAME="v%3Atuple_tycon"
></A
></A
><B
>tuple_tycon</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
> -&gt; <A HREF="Language-Haskell-Syntax.html#t%3AHsType"
>HsType</A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="14"
><A NAME="14"
>Source coordinates
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>data</SPAN
>  <A NAME="t:SrcLoc"
><A NAME="t%3ASrcLoc"
></A
></A
><B
>SrcLoc</B
>  </TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="ndoc"
>A position in the source.
</TD
></TR
><TR
><TD CLASS="section4"
>Constructors</TD
></TR
><TR
><TD CLASS="body"
><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:SrcLoc"
><A NAME="v%3ASrcLoc"
></A
></A
><B
>SrcLoc</B
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="body" COLSPAN="2"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="arg"
><A NAME="v:srcFilename"
><A NAME="v%3AsrcFilename"
></A
></A
><B
>srcFilename</B
> :: <A HREF="../base/Data-Char.html#t%3AString"
>String</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:srcLine"
><A NAME="v%3AsrcLine"
></A
></A
><B
>srcLine</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
><TR
><TD CLASS="arg"
><A NAME="v:srcColumn"
><A NAME="v%3AsrcColumn"
></A
></A
><B
>srcColumn</B
> :: <A HREF="../ghc-prim/GHC-Types.html#t%3AInt"
>Int</A
></TD
><TD CLASS="rdoc"
></TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="section4"
><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:SrcLoc')" ALT="show/hide"
> Instances</TD
></TR
><TR
><TD CLASS="body"
><DIV ID="i:SrcLoc" STYLE="display:block;"
><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Eq.html#t%3AEq"
>Eq</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Data.html#t%3AData"
>Data</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Ord.html#t%3AOrd"
>Ord</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Text-Show.html#t%3AShow"
>Show</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="../base/Data-Typeable.html#t%3ATypeable"
>Typeable</A
> <A HREF="Language-Haskell-Syntax.html#t%3ASrcLoc"
>SrcLoc</A
></TD
></TR
></TABLE
></DIV
></TD
></TR
></TABLE
></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
>