<!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 > -> <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 > -> <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 > -> <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 > -> <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 "<TT >!</TT >" </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 ><-</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 >-></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 >-></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 >-></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 > -> <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 > -> <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 > -> <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 > -> <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 >