<!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.Exts.Annotated.Build</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-Exts-Annotated-Build.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-exts-1.9.0: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer</TD ><TD CLASS="topbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html" >Source code</A ></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.Exts.Annotated.Build</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" >Niklas Broberg, d00nibro@chalmers.se</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" >Syntax building functions </A ></DT ><DT ><A HREF="#2" >More advanced building </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" >This module contains combinators to use when building Haskell source trees programmatically, as opposed to parsing them from a string. The contents here are quite experimental and will likely receive a lot of attention when the rest has stabilised. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="#v%3Aname" >name</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asym" >sym</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Avar" >var</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aop" >op</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AQOp" >QOp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aqvar" >qvar</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AModuleName" >ModuleName</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apvar" >pvar</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aapp" >app</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AinfixApp" >infixApp</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AQOp" >QOp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AappFun" >appFun</A > :: [l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApApp" >pApp</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Atuple" >tuple</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApTuple" >pTuple</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AvarTuple" >varTuple</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApvarTuple" >pvarTuple</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Afunction" >function</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AstrE" >strE</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcharE" >charE</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AintE" >intE</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AInteger" >Integer</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AstrP" >strP</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcharP" >charP</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AintP" >intP</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AInteger" >Integer</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AdoE" >doE</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlamE" >lamE</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AletE" >letE</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AcaseE" >caseE</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aalt" >alt</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AaltGW" >altGW</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AlistE" >listE</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AeList" >eList</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApeList" >peList</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aparen" >paren</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApParen" >pParen</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AqualStmt" >qualStmt</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgenStmt" >genStmt</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AletStmt" >letStmt</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Abinds" >binds</A > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnoBinds" >noBinds</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Awildcard" >wildcard</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AgenNames" >genNames</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Asfun" >sfun</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ARhs" >Rhs</A > l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l) -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AsimpleFun" >simpleFun</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatBind" >patBind</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3ApatBindWhere" >patBindWhere</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AnameBind" >nameBind</A > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmetaFunction" >metaFunction</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AmetaConPat" >metaConPat</A > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</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" >Syntax building functions </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:name" ><A NAME="v%3Aname" ></A ></A ><B >name</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#name" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >An identifier with the given string as its name. The string should be a valid Haskell identifier. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:sym" ><A NAME="v%3Asym" ></A ></A ><B >sym</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#sym" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A symbol identifier. The string should be a valid Haskell symbol identifier. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:var" ><A NAME="v%3Avar" ></A ></A ><B >var</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#var" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A local variable as expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:op" ><A NAME="v%3Aop" ></A ></A ><B >op</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AQOp" >QOp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#op" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Use the given identifier as an operator. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:qvar" ><A NAME="v%3Aqvar" ></A ></A ><B >qvar</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AModuleName" >ModuleName</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#qvar" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A qualified variable as expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pvar" ><A NAME="v%3Apvar" ></A ></A ><B >pvar</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#pvar" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A pattern variable. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:app" ><A NAME="v%3Aapp" ></A ></A ><B >app</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#app" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Application of expressions by juxtaposition. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:infixApp" ><A NAME="v%3AinfixApp" ></A ></A ><B >infixApp</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AQOp" >QOp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#infixApp" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Apply an operator infix. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:appFun" ><A NAME="v%3AappFun" ></A ></A ><B >appFun</B > :: [l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#appFun" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Apply a function to a list of arguments. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pApp" ><A NAME="v%3ApApp" ></A ></A ><B >pApp</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#pApp" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A constructor pattern, with argument patterns. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:tuple" ><A NAME="v%3Atuple" ></A ></A ><B >tuple</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#tuple" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A tuple expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pTuple" ><A NAME="v%3ApTuple" ></A ></A ><B >pTuple</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#pTuple" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A tuple pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:varTuple" ><A NAME="v%3AvarTuple" ></A ></A ><B >varTuple</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#varTuple" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A tuple expression consisting of variables only. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pvarTuple" ><A NAME="v%3ApvarTuple" ></A ></A ><B >pvarTuple</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#pvarTuple" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A tuple pattern consisting of variables only. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:function" ><A NAME="v%3Afunction" ></A ></A ><B >function</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#function" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A function with a given name. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:strE" ><A NAME="v%3AstrE" ></A ></A ><B >strE</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#strE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal string expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:charE" ><A NAME="v%3AcharE" ></A ></A ><B >charE</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#charE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal character expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:intE" ><A NAME="v%3AintE" ></A ></A ><B >intE</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AInteger" >Integer</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#intE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal integer expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:strP" ><A NAME="v%3AstrP" ></A ></A ><B >strP</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#strP" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal string pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:charP" ><A NAME="v%3AcharP" ></A ></A ><B >charP</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AChar" >Char</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#charP" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal character pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:intP" ><A NAME="v%3AintP" ></A ></A ><B >intP</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Prelude.html#t%3AInteger" >Integer</A > -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#intP" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A literal integer pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:doE" ><A NAME="v%3AdoE" ></A ></A ><B >doE</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#doE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A do block formed by the given statements. The last statement in the list should be a <TT ><A HREF="Language-Haskell-Exts-Annotated-Syntax.html#v%3AQualifier" >Qualifier</A ></TT > expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:lamE" ><A NAME="v%3AlamE" ></A ></A ><B >lamE</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#lamE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Lambda abstraction, given a list of argument patterns and an expression body. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:letE" ><A NAME="v%3AletE" ></A ></A ><B >letE</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#letE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A <TT >let</TT > ... <TT >in</TT > block. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:caseE" ><A NAME="v%3AcaseE" ></A ></A ><B >caseE</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#caseE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A <TT >case</TT > expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:alt" ><A NAME="v%3Aalt" ></A ></A ><B >alt</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#alt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >An unguarded alternative in a <TT >case</TT > expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:altGW" ><A NAME="v%3AaltGW" ></A ></A ><B >altGW</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AAlt" >Alt</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#altGW" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >An alternative with a single guard in a <TT >case</TT > expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:listE" ><A NAME="v%3AlistE" ></A ></A ><B >listE</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#listE" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A list expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:eList" ><A NAME="v%3AeList" ></A ></A ><B >eList</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#eList" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The empty list expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:peList" ><A NAME="v%3ApeList" ></A ></A ><B >peList</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#peList" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The empty list pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:paren" ><A NAME="v%3Aparen" ></A ></A ><B >paren</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#paren" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Put parentheses around an expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:pParen" ><A NAME="v%3ApParen" ></A ></A ><B >pParen</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#pParen" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Put parentheses around a pattern. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:qualStmt" ><A NAME="v%3AqualStmt" ></A ></A ><B >qualStmt</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#qualStmt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A qualifier expression statement. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:genStmt" ><A NAME="v%3AgenStmt" ></A ></A ><B >genStmt</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#genStmt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A generator statement: <EM >pat</EM > <TT ><-</TT > <EM >exp</EM > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:letStmt" ><A NAME="v%3AletStmt" ></A ></A ><B >letStmt</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AStmt" >Stmt</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#letStmt" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A <TT >let</TT > binding group as a statement. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:binds" ><A NAME="v%3Abinds" ></A ></A ><B >binds</B > :: l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#binds" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Hoist a set of declarations to a binding group. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:noBinds" ><A NAME="v%3AnoBinds" ></A ></A ><B >noBinds</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#noBinds" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >An empty binding group. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:wildcard" ><A NAME="v%3Awildcard" ></A ></A ><B >wildcard</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#wildcard" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >The wildcard pattern: <TT >_</TT > </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:genNames" ><A NAME="v%3AgenNames" ></A ></A ><B >genNames</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Int.html#t%3AInt" >Int</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l]</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#genNames" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Generate k names by appending numbers 1 through k to a given string. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >More advanced building </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:sfun" ><A NAME="v%3Asfun" ></A ></A ><B >sfun</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ARhs" >Rhs</A > l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Maybe.html#t%3AMaybe" >Maybe</A > (<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ABinds" >Binds</A > l) -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#sfun" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A function with a single clause </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:simpleFun" ><A NAME="v%3AsimpleFun" ></A ></A ><B >simpleFun</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#simpleFun" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A function with a single clause, a single argument, no guards and no where declarations </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:patBind" ><A NAME="v%3ApatBind" ></A ></A ><B >patBind</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#patBind" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A pattern bind where the pattern is a variable, and where there are no guards and no 'where' clause. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:patBindWhere" ><A NAME="v%3ApatBindWhere" ></A ></A ><B >patBindWhere</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#patBindWhere" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >A pattern bind where the pattern is a variable, and where there are no guards, but with a 'where' clause. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:nameBind" ><A NAME="v%3AnameBind" ></A ></A ><B >nameBind</B > :: l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AName" >Name</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3ADecl" >Decl</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#nameBind" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Bind an identifier to an expression. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:metaFunction" ><A NAME="v%3AmetaFunction" ></A ></A ><B >metaFunction</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3AExp" >Exp</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#metaFunction" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Apply function of a given name to a list of arguments. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="topdecl" ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname" ><A NAME="v:metaConPat" ><A NAME="v%3AmetaConPat" ></A ></A ><B >metaConPat</B > :: l -> <A HREF="/usr/share/doc/ghc/html/libraries/base-4.2.0.2/Data-Char.html#t%3AString" >String</A > -> [<A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l] -> <A HREF="Language-Haskell-Exts-Annotated-Syntax.html#t%3APat" >Pat</A > l</TD ><TD CLASS="declbut" ><A HREF="src/Language-Haskell-Exts-Annotated-Build.html#metaConPat" >Source</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="doc" >Apply a constructor of a given name to a list of pattern arguments, forming a constructor pattern. </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.6.1</TD ></TR ></TABLE ></BODY ></HTML >