Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 97a84b09736c9f6da17a3071b86ce47d > files > 52

ghc-haskell-src-exts-devel-1.10.2-1.fc15.i686.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Language.Haskell.Exts.Annotated.Build</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Language-Haskell-Exts-Annotated-Build.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Language-Haskell-Exts-Annotated-Build.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">haskell-src-exts-1.10.2: Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>Niklas Broberg, d00nibro@chalmers.se</td></tr></table><p class="caption">Language.Haskell.Exts.Annotated.Build</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Syntax building functions
</a></li><li><a href="#g:2">More advanced building
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>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.
</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:name">name</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l</li><li class="src short"><a href="#v:sym">sym</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l</li><li class="src short"><a href="#v:var">var</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:op">op</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:QOp">QOp</a> l</li><li class="src short"><a href="#v:qvar">qvar</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:ModuleName">ModuleName</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:pvar">pvar</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:app">app</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:infixApp">infixApp</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:QOp">QOp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:appFun">appFun</a> ::  [l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:pApp">pApp</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:tuple">tuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:pTuple">pTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:varTuple">varTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:pvarTuple">pvarTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:function">function</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:strE">strE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:charE">charE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:intE">intE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:strP">strP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:charP">charP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:intP">intP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:doE">doE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:lamE">lamE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:letE">letE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:caseE">caseE</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:alt">alt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l</li><li class="src short"><a href="#v:altGW">altGW</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l</li><li class="src short"><a href="#v:listE">listE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:eList">eList</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:peList">peList</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:paren">paren</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:pParen">pParen</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:qualStmt">qualStmt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l</li><li class="src short"><a href="#v:genStmt">genStmt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l</li><li class="src short"><a href="#v:letStmt">letStmt</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l</li><li class="src short"><a href="#v:binds">binds</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l</li><li class="src short"><a href="#v:noBinds">noBinds</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l</li><li class="src short"><a href="#v:wildcard">wildcard</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li><li class="src short"><a href="#v:genNames">genNames</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l]</li><li class="src short"><a href="#v:sfun">sfun</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Rhs">Rhs</a> l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l) -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l</li><li class="src short"><a href="#v:simpleFun">simpleFun</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l</li><li class="src short"><a href="#v:patBind">patBind</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l</li><li class="src short"><a href="#v:patBindWhere">patBindWhere</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l</li><li class="src short"><a href="#v:nameBind">nameBind</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l</li><li class="src short"><a href="#v:metaFunction">metaFunction</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l</li><li class="src short"><a href="#v:metaConPat">metaConPat</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l</li></ul></div><div id="interface"><h1 id="g:1">Syntax building functions
</h1><div class="top"><p class="src"><a name="v:name" class="def">name</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#name" class="link">Source</a></p><div class="doc"><p>An identifier with the given string as its name.
   The string should be a valid Haskell identifier.
</p></div></div><div class="top"><p class="src"><a name="v:sym" class="def">sym</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#sym" class="link">Source</a></p><div class="doc"><p>A symbol identifier. The string should be a valid
   Haskell symbol identifier.
</p></div></div><div class="top"><p class="src"><a name="v:var" class="def">var</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#var" class="link">Source</a></p><div class="doc"><p>A local variable as expression.
</p></div></div><div class="top"><p class="src"><a name="v:op" class="def">op</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:QOp">QOp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#op" class="link">Source</a></p><div class="doc"><p>Use the given identifier as an operator.
</p></div></div><div class="top"><p class="src"><a name="v:qvar" class="def">qvar</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:ModuleName">ModuleName</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#qvar" class="link">Source</a></p><div class="doc"><p>A qualified variable as expression.
</p></div></div><div class="top"><p class="src"><a name="v:pvar" class="def">pvar</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#pvar" class="link">Source</a></p><div class="doc"><p>A pattern variable.
</p></div></div><div class="top"><p class="src"><a name="v:app" class="def">app</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#app" class="link">Source</a></p><div class="doc"><p>Application of expressions by juxtaposition.
</p></div></div><div class="top"><p class="src"><a name="v:infixApp" class="def">infixApp</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:QOp">QOp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#infixApp" class="link">Source</a></p><div class="doc"><p>Apply an operator infix.
</p></div></div><div class="top"><p class="src"><a name="v:appFun" class="def">appFun</a> ::  [l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#appFun" class="link">Source</a></p><div class="doc"><p>Apply a function to a list of arguments.
</p></div></div><div class="top"><p class="src"><a name="v:pApp" class="def">pApp</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#pApp" class="link">Source</a></p><div class="doc"><p>A constructor pattern, with argument patterns.
</p></div></div><div class="top"><p class="src"><a name="v:tuple" class="def">tuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#tuple" class="link">Source</a></p><div class="doc"><p>A tuple expression.
</p></div></div><div class="top"><p class="src"><a name="v:pTuple" class="def">pTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#pTuple" class="link">Source</a></p><div class="doc"><p>A tuple pattern.
</p></div></div><div class="top"><p class="src"><a name="v:varTuple" class="def">varTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#varTuple" class="link">Source</a></p><div class="doc"><p>A tuple expression consisting of variables only.
</p></div></div><div class="top"><p class="src"><a name="v:pvarTuple" class="def">pvarTuple</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#pvarTuple" class="link">Source</a></p><div class="doc"><p>A tuple pattern consisting of variables only.
</p></div></div><div class="top"><p class="src"><a name="v:function" class="def">function</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#function" class="link">Source</a></p><div class="doc"><p>A function with a given name.
</p></div></div><div class="top"><p class="src"><a name="v:strE" class="def">strE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#strE" class="link">Source</a></p><div class="doc"><p>A literal string expression.
</p></div></div><div class="top"><p class="src"><a name="v:charE" class="def">charE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#charE" class="link">Source</a></p><div class="doc"><p>A literal character expression.
</p></div></div><div class="top"><p class="src"><a name="v:intE" class="def">intE</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#intE" class="link">Source</a></p><div class="doc"><p>A literal integer expression.
</p></div></div><div class="top"><p class="src"><a name="v:strP" class="def">strP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#strP" class="link">Source</a></p><div class="doc"><p>A literal string pattern.
</p></div></div><div class="top"><p class="src"><a name="v:charP" class="def">charP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#charP" class="link">Source</a></p><div class="doc"><p>A literal character pattern.
</p></div></div><div class="top"><p class="src"><a name="v:intP" class="def">intP</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#intP" class="link">Source</a></p><div class="doc"><p>A literal integer pattern.
</p></div></div><div class="top"><p class="src"><a name="v:doE" class="def">doE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#doE" class="link">Source</a></p><div class="doc"><p>A do block formed by the given statements.
   The last statement in the list should be
   a <code><a href="Language-Haskell-Exts-Annotated-Syntax.html#v:Qualifier">Qualifier</a></code> expression.
</p></div></div><div class="top"><p class="src"><a name="v:lamE" class="def">lamE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#lamE" class="link">Source</a></p><div class="doc"><p>Lambda abstraction, given a list of argument
   patterns and an expression body.
</p></div></div><div class="top"><p class="src"><a name="v:letE" class="def">letE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#letE" class="link">Source</a></p><div class="doc"><p>A <code>let</code> ... <code>in</code> block.
</p></div></div><div class="top"><p class="src"><a name="v:caseE" class="def">caseE</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#caseE" class="link">Source</a></p><div class="doc"><p>A <code>case</code> expression.
</p></div></div><div class="top"><p class="src"><a name="v:alt" class="def">alt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#alt" class="link">Source</a></p><div class="doc"><p>An unguarded alternative in a <code>case</code> expression.
</p></div></div><div class="top"><p class="src"><a name="v:altGW" class="def">altGW</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Alt">Alt</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#altGW" class="link">Source</a></p><div class="doc"><p>An alternative with a single guard in a <code>case</code> expression.
</p></div></div><div class="top"><p class="src"><a name="v:listE" class="def">listE</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#listE" class="link">Source</a></p><div class="doc"><p>A list expression.
</p></div></div><div class="top"><p class="src"><a name="v:eList" class="def">eList</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#eList" class="link">Source</a></p><div class="doc"><p>The empty list expression.
</p></div></div><div class="top"><p class="src"><a name="v:peList" class="def">peList</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#peList" class="link">Source</a></p><div class="doc"><p>The empty list pattern.
</p></div></div><div class="top"><p class="src"><a name="v:paren" class="def">paren</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#paren" class="link">Source</a></p><div class="doc"><p>Put parentheses around an expression.
</p></div></div><div class="top"><p class="src"><a name="v:pParen" class="def">pParen</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#pParen" class="link">Source</a></p><div class="doc"><p>Put parentheses around a pattern.
</p></div></div><div class="top"><p class="src"><a name="v:qualStmt" class="def">qualStmt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#qualStmt" class="link">Source</a></p><div class="doc"><p>A qualifier expression statement.
</p></div></div><div class="top"><p class="src"><a name="v:genStmt" class="def">genStmt</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#genStmt" class="link">Source</a></p><div class="doc"><p>A generator statement: <em>pat</em> <code>&lt;-</code> <em>exp</em>
</p></div></div><div class="top"><p class="src"><a name="v:letStmt" class="def">letStmt</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Stmt">Stmt</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#letStmt" class="link">Source</a></p><div class="doc"><p>A <code>let</code> binding group as a statement.
</p></div></div><div class="top"><p class="src"><a name="v:binds" class="def">binds</a> ::  l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#binds" class="link">Source</a></p><div class="doc"><p>Hoist a set of declarations to a binding group.
</p></div></div><div class="top"><p class="src"><a name="v:noBinds" class="def">noBinds</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#noBinds" class="link">Source</a></p><div class="doc"><p>An empty binding group.
</p></div></div><div class="top"><p class="src"><a name="v:wildcard" class="def">wildcard</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#wildcard" class="link">Source</a></p><div class="doc"><p>The wildcard pattern: <code>_</code>
</p></div></div><div class="top"><p class="src"><a name="v:genNames" class="def">genNames</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Int.html#t:Int">Int</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l]<a href="src/Language-Haskell-Exts-Annotated-Build.html#genNames" class="link">Source</a></p><div class="doc"><p>Generate k names by appending numbers 1 through k to a given string.
</p></div></div><h1 id="g:2">More advanced building
</h1><div class="top"><p class="src"><a name="v:sfun" class="def">sfun</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Rhs">Rhs</a> l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Binds">Binds</a> l) -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#sfun" class="link">Source</a></p><div class="doc"><p>A function with a single clause
</p></div></div><div class="top"><p class="src"><a name="v:simpleFun" class="def">simpleFun</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#simpleFun" class="link">Source</a></p><div class="doc"><p>A function with a single clause, a single argument, no guards
 and no where declarations
</p></div></div><div class="top"><p class="src"><a name="v:patBind" class="def">patBind</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#patBind" class="link">Source</a></p><div class="doc"><p>A pattern bind where the pattern is a variable, and where
 there are no guards and no 'where' clause.
</p></div></div><div class="top"><p class="src"><a name="v:patBindWhere" class="def">patBindWhere</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#patBindWhere" class="link">Source</a></p><div class="doc"><p>A pattern bind where the pattern is a variable, and where
 there are no guards, but with a 'where' clause.
</p></div></div><div class="top"><p class="src"><a name="v:nameBind" class="def">nameBind</a> ::  l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Name">Name</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Decl">Decl</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#nameBind" class="link">Source</a></p><div class="doc"><p>Bind an identifier to an expression.
</p></div></div><div class="top"><p class="src"><a name="v:metaFunction" class="def">metaFunction</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Exp">Exp</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#metaFunction" class="link">Source</a></p><div class="doc"><p>Apply function of a given name to a list of arguments.
</p></div></div><div class="top"><p class="src"><a name="v:metaConPat" class="def">metaConPat</a> ::  l -&gt; <a href="/usr/share/doc/ghc/html/libraries/base-4.3.1.0/Data-Char.html#t:String">String</a> -&gt; [<a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l] -&gt; <a href="Language-Haskell-Exts-Annotated-Syntax.html#t:Pat">Pat</a> l<a href="src/Language-Haskell-Exts-Annotated-Build.html#metaConPat" class="link">Source</a></p><div class="doc"><p>Apply a constructor of a given name to a list of pattern
   arguments, forming a constructor pattern.
</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.9.2</p></div></body></html>