Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 6e204a966e8c42d976f99a1700ce5f20 > files > 4110

ghc-7.4.2-4.mga5.i586.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.TH</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-TH.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">template-haskell-2.7.0.0</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Language.Haskell.TH</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The monad and its operations
</a></li><li><a href="#g:2">Names
</a></li><li><a href="#g:3">The algebraic data types
</a></li><li><a href="#g:4">Library functions
</a><ul><li><a href="#g:5">Abbreviations
</a></li><li><a href="#g:6">Constructors lifted to <code><a href="Language-Haskell-TH.html#t:Q">Q</a></code>
</a><ul><li><a href="#g:7">Literals
</a></li><li><a href="#g:8">Patterns
</a></li><li><a href="#g:9">Pattern Guards
</a></li><li><a href="#g:10">Expressions
</a><ul><li><a href="#g:11">Ranges
</a><ul><li><a href="#g:12">Ranges with more indirection
</a></li></ul></li><li><a href="#g:13">Statements
</a></li></ul></li><li><a href="#g:14">Types
</a><ul><li><a href="#g:15">Strictness
</a></li><li><a href="#g:16">Class Contexts
</a></li></ul></li><li><a href="#g:17">Top Level Declarations
</a><ul><li><a href="#g:18">Data
</a></li><li><a href="#g:19">Class
</a></li><li><a href="#g:20">Type Family / Data Family
</a></li><li><a href="#g:21">Foreign Function Interface (FFI)
</a></li><li><a href="#g:22">Pragmas
</a></li></ul></li></ul></li></ul></li><li><a href="#g:23">Pretty-printer
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>The public face of Template Haskell
</p><p>For other documentation, refer to:
<a href="http://www.haskell.org/haskellwiki/Template_Haskell">http://www.haskell.org/haskellwiki/Template_Haskell</a>
</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"><span class="keyword">data</span>  <a href="#t:Q">Q</a> a</li><li class="src short"><a href="#v:runQ">runQ</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> m =&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a -&gt; m a</li><li class="src short"><a href="#v:report">report</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> ()</li><li class="src short"><a href="#v:recover">recover</a> ::  <a href="Language-Haskell-TH.html#t:Q">Q</a> a -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a</li><li class="src short"><a href="#v:reify">reify</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></li><li class="src short"><a href="#v:location">location</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Loc">Loc</a></li><li class="src short"><a href="#v:runIO">runIO</a> ::  <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a</li><li class="src short"><a href="#v:lookupTypeName">lookupTypeName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>)</li><li class="src short"><a href="#v:lookupValueName">lookupValueName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>)</li><li class="src short"><a href="#v:isInstance">isInstance</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></li><li class="src short"><a href="#v:reifyInstances">reifyInstances</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Name">Name</a> </li><li class="src short"><span class="keyword">data</span>  <a href="#t:NameSpace">NameSpace</a> </li><li class="src short"><a href="#v:mkName">mkName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></li><li class="src short"><a href="#v:newName">newName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></li><li class="src short"><a href="#v:nameBase">nameBase</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:nameModule">nameModule</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:tupleTypeName">tupleTypeName</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></li><li class="src short"><a href="#v:tupleDataName">tupleDataName</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Dec">Dec</a> <ul class="subs"><li>= <a href="#v:FunD">FunD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Clause">Clause</a>]  </li><li>| <a href="#v:ValD">ValD</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:DataD">DataD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH.html#t:Con">Con</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]  </li><li>| <a href="#v:NewtypeD">NewtypeD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Con">Con</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>]  </li><li>| <a href="#v:TySynD">TySynD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:ClassD">ClassD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:InstanceD">InstanceD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:SigD">SigD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:ForeignD">ForeignD</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a>  </li><li>| <a href="#v:PragmaD">PragmaD</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a>  </li><li>| <a href="#v:FamilyD">FamilyD</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:DataInstD">DataInstD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] [<a href="Language-Haskell-TH.html#t:Con">Con</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]  </li><li>| <a href="#v:NewtypeInstD">NewtypeInstD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] <a href="Language-Haskell-TH.html#t:Con">Con</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>]  </li><li>| <a href="#v:TySynInstD">TySynInstD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Exp">Exp</a> <ul class="subs"><li>= <a href="#v:VarE">VarE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:ConE">ConE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:LitE">LitE</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a>  </li><li>| <a href="#v:AppE">AppE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:InfixE">InfixE</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>) <a href="Language-Haskell-TH.html#t:Exp">Exp</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)  </li><li>| <a href="#v:UInfixE">UInfixE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ParensE">ParensE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LamE">LamE</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:TupE">TupE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:UnboxedTupE">UnboxedTupE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:CondE">CondE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LetE">LetE</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>] <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:CaseE">CaseE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH.html#t:Match">Match</a>]  </li><li>| <a href="#v:DoE">DoE</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:CompE">CompE</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:ArithSeqE">ArithSeqE</a> <a href="Language-Haskell-TH.html#t:Range">Range</a>  </li><li>| <a href="#v:ListE">ListE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:SigE">SigE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:RecConE">RecConE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:FieldExp">FieldExp</a>]  </li><li>| <a href="#v:RecUpdE">RecUpdE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH.html#t:FieldExp">FieldExp</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Con">Con</a> <ul class="subs"><li>= <a href="#v:NormalC">NormalC</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a>]  </li><li>| <a href="#v:RecC">RecC</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:VarStrictType">VarStrictType</a>]  </li><li>| <a href="#v:InfixC">InfixC</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a>  </li><li>| <a href="#v:ForallC">ForallC</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Con">Con</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Type">Type</a> <ul class="subs"><li>= <a href="#v:ForallT">ForallT</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:VarT">VarT</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:ConT">ConT</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:TupleT">TupleT</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>  </li><li>| <a href="#v:UnboxedTupleT">UnboxedTupleT</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>  </li><li>| <a href="#v:ArrowT">ArrowT</a>  </li><li>| <a href="#v:ListT">ListT</a>  </li><li>| <a href="#v:AppT">AppT</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:SigT">SigT</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:TyVarBndr">TyVarBndr</a> <ul class="subs"><li>= <a href="#v:PlainTV">PlainTV</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:KindedTV">KindedTV</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Kind">Kind</a> <ul class="subs"><li>= <a href="#v:StarK">StarK</a>  </li><li>| <a href="#v:ArrowK">ArrowK</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:Cxt">Cxt</a> = [<a href="Language-Haskell-TH.html#t:Pred">Pred</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Pred">Pred</a> <ul class="subs"><li>= <a href="#v:ClassP">ClassP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>]  </li><li>| <a href="#v:EqualP">EqualP</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Match">Match</a>  = <a href="#v:Match">Match</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Clause">Clause</a>  = <a href="#v:Clause">Clause</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Body">Body</a> <ul class="subs"><li>= <a href="#v:GuardedB">GuardedB</a> [(<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)]  </li><li>| <a href="#v:NormalB">NormalB</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Guard">Guard</a> <ul class="subs"><li>= <a href="#v:NormalG">NormalG</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:PatG">PatG</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Stmt">Stmt</a> <ul class="subs"><li>= <a href="#v:BindS">BindS</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LetS">LetS</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:NoBindS">NoBindS</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ParS">ParS</a> [[<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]]  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Range">Range</a> <ul class="subs"><li>= <a href="#v:FromR">FromR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromThenR">FromThenR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromToR">FromToR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromThenToR">FromThenToR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Lit">Lit</a> <ul class="subs"><li>= <a href="#v:CharL">CharL</a> <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a>  </li><li>| <a href="#v:StringL">StringL</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li><li>| <a href="#v:IntegerL">IntegerL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:RationalL">RationalL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:IntPrimL">IntPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:WordPrimL">WordPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a>  </li><li>| <a href="#v:FloatPrimL">FloatPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:DoublePrimL">DoublePrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a>  </li><li>| <a href="#v:StringPrimL">StringPrimL</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Pat">Pat</a> <ul class="subs"><li>= <a href="#v:LitP">LitP</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a>  </li><li>| <a href="#v:VarP">VarP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>  </li><li>| <a href="#v:TupP">TupP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:UnboxedTupP">UnboxedTupP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:ConP">ConP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:InfixP">InfixP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:UInfixP">UInfixP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:ParensP">ParensP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:TildeP">TildeP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:BangP">BangP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:AsP">AsP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li><li>| <a href="#v:WildP">WildP</a>  </li><li>| <a href="#v:RecP">RecP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:FieldPat">FieldPat</a>]  </li><li>| <a href="#v:ListP">ListP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:SigP">SigP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:ViewP">ViewP</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a>  </li></ul></li><li class="src short"><span class="keyword">type</span> <a href="#t:FieldExp">FieldExp</a> = (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:FieldPat">FieldPat</a> = (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Pat">Pat</a>)</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Strict">Strict</a> <ul class="subs"><li>= <a href="#v:IsStrict">IsStrict</a>  </li><li>| <a href="#v:NotStrict">NotStrict</a>  </li><li>| <a href="#v:Unpacked">Unpacked</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Foreign">Foreign</a> <ul class="subs"><li>= <a href="#v:ImportF">ImportF</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li><li>| <a href="#v:ExportF">ExportF</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Callconv">Callconv</a> <ul class="subs"><li>= <a href="#v:CCall">CCall</a>  </li><li>| <a href="#v:StdCall">StdCall</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Safety">Safety</a> <ul class="subs"><li>= <a href="#v:Unsafe">Unsafe</a>  </li><li>| <a href="#v:Safe">Safe</a>  </li><li>| <a href="#v:Interruptible">Interruptible</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Pragma">Pragma</a> <ul class="subs"><li>= <a href="#v:InlineP">InlineP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a>  </li><li>| <a href="#v:SpecialiseP">SpecialiseP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a>)  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:InlineSpec">InlineSpec</a>  = <a href="#v:InlineSpec">InlineSpec</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>))</li><li class="src short"><span class="keyword">data</span>  <a href="#t:FunDep">FunDep</a>  = <a href="#v:FunDep">FunDep</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:FamFlavour">FamFlavour</a> <ul class="subs"><li>= <a href="#v:TypeFam">TypeFam</a>  </li><li>| <a href="#v:DataFam">DataFam</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Info">Info</a> <ul class="subs"><li>= <a href="#v:ClassI">ClassI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a> [InstanceDec]  </li><li>| <a href="#v:ClassOpI">ClassOpI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:TyConI">TyConI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a>  </li><li>| <a href="#v:FamilyI">FamilyI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a> [InstanceDec]  </li><li>| <a href="#v:PrimTyConI">PrimTyConI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>  </li><li>| <a href="#v:DataConI">DataConI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:VarI">VarI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a>) <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:TyVarI">TyVarI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:Loc">Loc</a>  = <a href="#v:Loc">Loc</a> {<ul class="subs"><li><a href="#v:loc_filename">loc_filename</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:loc_package">loc_package</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:loc_module">loc_module</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li><a href="#v:loc_start">loc_start</a> :: <a href="Language-Haskell-TH-Syntax.html#t:CharPos">CharPos</a></li><li><a href="#v:loc_end">loc_end</a> :: <a href="Language-Haskell-TH-Syntax.html#t:CharPos">CharPos</a></li></ul>}</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Fixity">Fixity</a>  = <a href="#v:Fixity">Fixity</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:FixityDirection">FixityDirection</a> <ul class="subs"><li>= <a href="#v:InfixL">InfixL</a>  </li><li>| <a href="#v:InfixR">InfixR</a>  </li><li>| <a href="#v:InfixN">InfixN</a>  </li></ul></li><li class="src short"><a href="#v:defaultFixity">defaultFixity</a> :: <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></li><li class="src short"><a href="#v:maxPrecedence">maxPrecedence</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:InfoQ">InfoQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ExpQ">ExpQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DecQ">DecQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:DecsQ">DecsQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">type</span> <a href="#t:ConQ">ConQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:TypeQ">TypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:CxtQ">CxtQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:PredQ">PredQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:MatchQ">MatchQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:ClauseQ">ClauseQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:BodyQ">BodyQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:GuardQ">GuardQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:StmtQ">StmtQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:RangeQ">RangeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:StrictTypeQ">StrictTypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:VarStrictTypeQ">VarStrictTypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:VarStrictType">VarStrictType</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:PatQ">PatQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:FieldPatQ">FieldPatQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:FieldPat">FieldPat</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:InlineSpecQ">InlineSpecQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></li><li class="src short"><a href="#v:intPrimL">intPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:wordPrimL">wordPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:floatPrimL">floatPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:doublePrimL">doublePrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:integerL">integerL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:rationalL">rationalL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:charL">charL</a> :: <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:stringL">stringL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:stringPrimL">stringPrimL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></li><li class="src short"><a href="#v:litP">litP</a> :: <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:varP">varP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:tupP">tupP</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:conP">conP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:uInfixP">uInfixP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:parensP">parensP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:infixP">infixP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:tildeP">tildeP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:bangP">bangP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:asP">asP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:wildP">wildP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:recP">recP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:FieldPatQ">FieldPatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:listP">listP</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:sigP">sigP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:viewP">viewP</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></li><li class="src short"><a href="#v:fieldPat">fieldPat</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:FieldPatQ">FieldPatQ</a></li><li class="src short"><a href="#v:normalB">normalB</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a></li><li class="src short"><a href="#v:guardedB">guardedB</a> :: [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a></li><li class="src short"><a href="#v:normalG">normalG</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:GuardQ">GuardQ</a></li><li class="src short"><a href="#v:normalGE">normalGE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</li><li class="src short"><a href="#v:patG">patG</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:GuardQ">GuardQ</a></li><li class="src short"><a href="#v:patGE">patGE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</li><li class="src short"><a href="#v:match">match</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:MatchQ">MatchQ</a></li><li class="src short"><a href="#v:clause">clause</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ClauseQ">ClauseQ</a></li><li class="src short"><a href="#v:dyn">dyn</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:global">global</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:varE">varE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:conE">conE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:litE">litE</a> :: <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:appE">appE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:uInfixE">uInfixE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:parensE">parensE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:infixE">infixE</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:infixApp">infixApp</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:sectionL">sectionL</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:sectionR">sectionR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:lamE">lamE</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:lam1E">lam1E</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:tupE">tupE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:condE">condE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:letE">letE</a> :: [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:caseE">caseE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:MatchQ">MatchQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:appsE">appsE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:listE">listE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:sigE">sigE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:recConE">recConE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:recUpdE">recUpdE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:stringE">stringE</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:fieldExp">fieldExp</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</li><li class="src short"><a href="#v:fromE">fromE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:fromThenE">fromThenE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:fromToE">fromToE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:fromThenToE">fromThenToE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:arithSeqE">arithSeqE</a> :: <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:fromR">fromR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></li><li class="src short"><a href="#v:fromThenR">fromThenR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></li><li class="src short"><a href="#v:fromToR">fromToR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></li><li class="src short"><a href="#v:fromThenToR">fromThenToR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></li><li class="src short"><a href="#v:doE">doE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:compE">compE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></li><li class="src short"><a href="#v:bindS">bindS</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></li><li class="src short"><a href="#v:letS">letS</a> :: [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></li><li class="src short"><a href="#v:noBindS">noBindS</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></li><li class="src short"><a href="#v:parS">parS</a> :: [[<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>]] -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></li><li class="src short"><a href="#v:forallT">forallT</a> :: [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:varT">varT</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:conT">conT</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:appT">appT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:arrowT">arrowT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:listT">listT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:tupleT">tupleT</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:sigT">sigT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Kind">Kind</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></li><li class="src short"><a href="#v:isStrict">isStrict</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></li><li class="src short"><a href="#v:notStrict">notStrict</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></li><li class="src short"><a href="#v:strictType">strictType</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a></li><li class="src short"><a href="#v:varStrictType">varStrictType</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:VarStrictTypeQ">VarStrictTypeQ</a></li><li class="src short"><a href="#v:cxt">cxt</a> :: [<a href="Language-Haskell-TH.html#t:PredQ">PredQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a></li><li class="src short"><a href="#v:classP">classP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PredQ">PredQ</a></li><li class="src short"><a href="#v:equalP">equalP</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PredQ">PredQ</a></li><li class="src short"><a href="#v:normalC">normalC</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></li><li class="src short"><a href="#v:recC">recC</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:VarStrictTypeQ">VarStrictTypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></li><li class="src short"><a href="#v:infixC">infixC</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH.html#t:Type">Type</a>) -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH.html#t:Type">Type</a>) -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></li><li class="src short"><a href="#v:valD">valD</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:funD">funD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:ClauseQ">ClauseQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:tySynD">tySynD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:dataD">dataD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; [<a href="Language-Haskell-TH.html#t:ConQ">ConQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:newtypeD">newtypeD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:classD">classD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; [<a href="Language-Haskell-TH.html#t:FunDep">FunDep</a>] -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:instanceD">instanceD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:sigD">sigD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:familyNoKindD">familyNoKindD</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:familyKindD">familyKindD</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:Kind">Kind</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:dataInstD">dataInstD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:ConQ">ConQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:newtypeInstD">newtypeInstD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:tySynInstD">tySynInstD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:typeFam">typeFam</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></li><li class="src short"><a href="#v:dataFam">dataFam</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></li><li class="src short"><a href="#v:cCall">cCall</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></li><li class="src short"><a href="#v:stdCall">stdCall</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></li><li class="src short"><a href="#v:unsafe">unsafe</a> :: <a href="Language-Haskell-TH.html#t:Safety">Safety</a></li><li class="src short"><a href="#v:safe">safe</a> :: <a href="Language-Haskell-TH.html#t:Safety">Safety</a></li><li class="src short"><a href="#v:forImpD">forImpD</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> -&gt; <a href="Language-Haskell-TH.html#t:Safety">Safety</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:inlineSpecNoPhase">inlineSpecNoPhase</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a></li><li class="src short"><a href="#v:inlineSpecPhase">inlineSpecPhase</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a></li><li class="src short"><a href="#v:pragInlD">pragInlD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><a href="#v:pragSpecD">pragSpecD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Ppr">Ppr</a> a  <span class="keyword">where</span><ul class="subs"><li><a href="#v:ppr">ppr</a> :: a -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li><li><a href="#v:ppr_list">ppr_list</a> :: [a] -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li></ul></li><li class="src short"><a href="#v:pprint">pprint</a> :: <a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> a =&gt; a -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><a href="#v:pprExp">pprExp</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Exp">Exp</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:pprLit">pprLit</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:pprPat">pprPat</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Pat">Pat</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li><li class="src short"><a href="#v:pprParendType">pprParendType</a> :: <a href="Language-Haskell-TH.html#t:Type">Type</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></li></ul></div><div id="interface"><h1 id="g:1">The monad and its operations
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Q" class="def">Q</a> a </p><div class="subs instances"><p id="control.i:Q" class="caption collapser" onclick="toggleSection('i:Q')">Instances</p><div id="section.i:Q" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="Language-Haskell-TH.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Monad.html#t:Functor">Functor</a> <a href="Language-Haskell-TH.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Language-Haskell-TH.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> <a href="Language-Haskell-TH.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:runQ" class="def">runQ</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> m =&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a -&gt; m a</p></div><div class="top"><p class="src"><a name="v:report" class="def">report</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> ()</p></div><div class="top"><p class="src"><a name="v:recover" class="def">recover</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="Language-Haskell-TH.html#t:Q">Q</a> a</td><td class="doc"><p>recover with this one
</p></td></tr><tr><td class="src">-&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a</td><td class="doc"><p>failing action
</p></td></tr><tr><td class="src">-&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a</td><td class="doc empty">&nbsp;</td></tr></table></div></div><div class="top"><p class="src"><a name="v:reify" class="def">reify</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></p><div class="doc"><p><code><a href="Language-Haskell-TH.html#v:reify">reify</a></code> looks up information about the <code><a href="Language-Haskell-TH.html#t:Name">Name</a></code>
</p></div></div><div class="top"><p class="src"><a name="v:location" class="def">location</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Loc">Loc</a></p><div class="doc"><p><code><a href="Language-Haskell-TH.html#v:location">location</a></code> gives you the <code>Location</code> at which this
 computation is spliced.
</p></div></div><div class="top"><p class="src"><a name="v:runIO" class="def">runIO</a> ::  <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> a -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> a</p><div class="doc"><p>The <code><a href="Language-Haskell-TH.html#v:runIO">runIO</a></code> function lets you run an I/O computation in the <code><a href="Language-Haskell-TH.html#t:Q">Q</a></code> monad.
 Take care: you are guaranteed the ordering of calls to <code><a href="Language-Haskell-TH.html#v:runIO">runIO</a></code> within 
 a single <code><a href="Language-Haskell-TH.html#t:Q">Q</a></code> computation, but not about the order in which splices are run.  
</p><p>Note: for various murky reasons, stdout and stderr handles are not 
 necesarily flushed when the  compiler finishes running, so you should
 flush them yourself.
</p></div></div><div class="top"><p class="src"><a name="v:lookupTypeName" class="def">lookupTypeName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>)</p></div><div class="top"><p class="src"><a name="v:lookupValueName" class="def">lookupValueName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Name">Name</a>)</p></div><div class="top"><p class="src"><a name="v:isInstance" class="def">isInstance</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></p></div><div class="top"><p class="src"><a name="v:reifyInstances" class="def">reifyInstances</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</p><div class="doc"><p><code>classInstances</code> looks up instaces of a class
</p></div></div><h1 id="g:2">Names
</h1><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Name" class="def">Name</a>  </p><div class="doc"><p>For <a href="global.html">global</a> names (<code><a href="Language-Haskell-TH-Syntax.html#v:NameG">NameG</a></code>) we need a totally unique name,
 so we must include the name-space of the thing
</p><p>For unique-numbered things (<code><a href="Language-Haskell-TH-Syntax.html#v:NameU">NameU</a></code>), we've got a unique reference
 anyway, so no need for name space
</p><p>For dynamically bound thing (<code><a href="Language-Haskell-TH-Syntax.html#v:NameS">NameS</a></code>) we probably want them to
 in a context-dependent way, so again we don't want the name
 space.  For example:
</p><pre> let v = mkName &quot;T&quot; in [| data $v = $v |]
</pre><p>Here we use the same Name for both type constructor and data constructor
</p><p>NameL and NameG are bound *outside* the TH syntax tree
 either globally (NameG) or locally (NameL). Ex:
</p><pre> f x = $(h [| (map, x) |])
</pre><p>The <code><a href="../base-4.5.1.0/Data-List.html#v:map">map</a></code> will be a NameG, and <code>x</code> wil be a NameL
</p><p>These Names should never appear in a binding position in a TH syntax tree
</p></div><div class="subs instances"><p id="control.i:Name" class="caption collapser" onclick="toggleSection('i:Name')">Instances</p><div id="section.i:Name" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:NameSpace" class="def">NameSpace</a>  </p><div class="subs instances"><p id="control.i:NameSpace" class="caption collapser" onclick="toggleSection('i:NameSpace')">Instances</p><div id="section.i:NameSpace" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:NameSpace">NameSpace</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:NameSpace">NameSpace</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Ord.html#t:Ord">Ord</a> <a href="Language-Haskell-TH.html#t:NameSpace">NameSpace</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:NameSpace">NameSpace</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkName" class="def">mkName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></p><div class="doc"><p>The string can have a <code><a href="../base-4.5.1.0/Prelude.html#v:.">.</a></code>, thus <a href="Foo-baz.html">Foo.baz</a>,
 giving a dynamically-bound qualified name,
 in which case we want to generate a NameQ
</p><p>Parse the string to see if it has a <a href="-.html">.</a> in it
 so we know whether to generate a qualified or unqualified name
 It's a bit tricky because we need to parse 
</p><pre> Foo.Baz.x   as    Qual Foo.Baz x
</pre><p>So we parse it from back to front
</p></div></div><div class="top"><p class="src"><a name="v:newName" class="def">newName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:nameBase" class="def">nameBase</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p><div class="doc"><p>Base, unqualified name.
</p></div></div><div class="top"><p class="src"><a name="v:nameModule" class="def">nameModule</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:tupleTypeName" class="def">tupleTypeName</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><p>Type constructor
</p></td></tr></table></div></div><div class="top"><p class="src"><a name="v:tupleDataName" class="def">tupleDataName</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">-&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><p>Data constructor
</p></td></tr></table></div></div><h1 id="g:3">The algebraic data types
</h1><div class="doc"><p>The lowercase versions (<em>syntax operators</em>) of these constructors are
 preferred to these constructors, since they compose better with
 quotations (<code>[| |]</code>) and splices (<code>$( ... )</code>)
</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Dec" class="def">Dec</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FunD" class="def">FunD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Clause">Clause</a>]</td><td class="doc"><pre>{ f p1 p2 = b where decs }</pre></td></tr><tr><td class="src"><a name="v:ValD" class="def">ValD</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc"><pre>{ p = b where decs }</pre></td></tr><tr><td class="src"><a name="v:DataD" class="def">DataD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH.html#t:Con">Con</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</td><td class="doc"><pre>{ data Cxt x =&gt; T x = A x | B (T x)
       deriving (Z,W)}</pre></td></tr><tr><td class="src"><a name="v:NewtypeD" class="def">NewtypeD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Con">Con</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</td><td class="doc"><pre>{ newtype Cxt x =&gt; T x = A (B x)
       deriving (Z,W)}</pre></td></tr><tr><td class="src"><a name="v:TySynD" class="def">TySynD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>{ type T x = (x,x) }</pre></td></tr><tr><td class="src"><a name="v:ClassD" class="def">ClassD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc"><pre>{ class Eq a =&gt; Ord a where ds }</pre></td></tr><tr><td class="src"><a name="v:InstanceD" class="def">InstanceD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc"><pre>{ instance Show w =&gt; Show [w]
       where ds }</pre></td></tr><tr><td class="src"><a name="v:SigD" class="def">SigD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>{ length :: [a] -&gt; Int }</pre></td></tr><tr><td class="src"><a name="v:ForeignD" class="def">ForeignD</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PragmaD" class="def">PragmaD</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc"><pre>{ {-<a name=" INLINE [1] foo "></a>-} }</pre></td></tr><tr><td class="src"><a name="v:FamilyD" class="def">FamilyD</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a>)</td><td class="doc"><pre>{ type family T a b c :: * }</pre></td></tr><tr><td class="src"><a name="v:DataInstD" class="def">DataInstD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] [<a href="Language-Haskell-TH.html#t:Con">Con</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</td><td class="doc"><pre>{ data instance Cxt x =&gt; T [x] = A x 
                                | B (T x)
       deriving (Z,W)}</pre></td></tr><tr><td class="src"><a name="v:NewtypeInstD" class="def">NewtypeInstD</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] <a href="Language-Haskell-TH.html#t:Con">Con</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</td><td class="doc"><pre>{ newtype instance Cxt x =&gt; T [x] = A (B x)
       deriving (Z,W)}</pre></td></tr><tr><td class="src"><a name="v:TySynInstD" class="def">TySynInstD</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>] <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>{ type instance T (Maybe x) = (x,x) }</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Dec" class="caption collapser" onclick="toggleSection('i:Dec')">Instances</p><div id="section.i:Dec" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Exp" class="def">Exp</a>  </p><div class="doc"><p>The <code><a href="Language-Haskell-TH.html#v:CompE">CompE</a></code> constructor represents a list comprehension, and 
 takes a [<code><a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></code>].  The result expression of the comprehension is
 the *last* of these, and should be a <code><a href="Language-Haskell-TH.html#v:NoBindS">NoBindS</a></code>.
</p><p>E.g. translation:
</p><pre> [ f x | x &lt;- xs ]
</pre><pre> CompE [BindS (VarP x) (VarE xs), NoBindS (AppE (VarE f) (VarE x))]
</pre></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VarE" class="def">VarE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>{ x }</pre></td></tr><tr><td class="src"><a name="v:ConE" class="def">ConE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>data T1 = C1 t1 t2; p = {C1} e1 e2</pre></td></tr><tr><td class="src"><a name="v:LitE" class="def">LitE</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc"><pre>{ 5 or <code>c</code>}</pre></td></tr><tr><td class="src"><a name="v:AppE" class="def">AppE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{ f x }</pre></td></tr><tr><td class="src"><a name="v:InfixE" class="def">InfixE</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>) <a href="Language-Haskell-TH.html#t:Exp">Exp</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</td><td class="doc"><pre>{x + y} or {(x+)} or {(+ x)} or {(+)}</pre><p>It's a bit gruesome to use an Exp as the
 operator, but how else can we distinguish
 constructors from non-constructors?
 Maybe there should be a var-or-con type?
 Or maybe we should leave it to the String itself?
</p></td></tr><tr><td class="src"><a name="v:UInfixE" class="def">UInfixE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{x + y}</pre><p>See Note [Unresolved infix] at <a href="Language-Haskell-TH-Syntax.html#infix">Language.Haskell.TH.Syntax</a>
</p></td></tr><tr><td class="src"><a name="v:ParensE" class="def">ParensE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{ (e) }</pre><p>See Note [Unresolved infix] at <a href="Language-Haskell-TH-Syntax.html#infix">Language.Haskell.TH.Syntax</a>
</p></td></tr><tr><td class="src"><a name="v:LamE" class="def">LamE</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{  p1 p2 -&gt; e }</pre></td></tr><tr><td class="src"><a name="v:TupE" class="def">TupE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]</td><td class="doc"><pre>{ (e1,e2) }</pre></td></tr><tr><td class="src"><a name="v:UnboxedTupE" class="def">UnboxedTupE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]</td><td class="doc"><pre>{ (<a name=" e1,e2 "></a>) }</pre></td></tr><tr><td class="src"><a name="v:CondE" class="def">CondE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{ if e1 then e2 else e3 }</pre></td></tr><tr><td class="src"><a name="v:LetE" class="def">LetE</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>] <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>{ let x=e1;   y=e2 in e3 }</pre></td></tr><tr><td class="src"><a name="v:CaseE" class="def">CaseE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH.html#t:Match">Match</a>]</td><td class="doc"><pre>{ case e of m1; m2 }</pre></td></tr><tr><td class="src"><a name="v:DoE" class="def">DoE</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]</td><td class="doc"><pre>{ do { p &lt;- e1; e2 }  }</pre></td></tr><tr><td class="src"><a name="v:CompE" class="def">CompE</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]</td><td class="doc"><pre>{ [ (x,y) | x &lt;- xs, y &lt;- ys ] }</pre></td></tr><tr><td class="src"><a name="v:ArithSeqE" class="def">ArithSeqE</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc"><pre>{ [ 1 ,2 .. 10 ] }</pre></td></tr><tr><td class="src"><a name="v:ListE" class="def">ListE</a> [<a href="Language-Haskell-TH.html#t:Exp">Exp</a>]</td><td class="doc"><pre>{ [1,2,3] }</pre></td></tr><tr><td class="src"><a name="v:SigE" class="def">SigE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>{ e :: t }</pre></td></tr><tr><td class="src"><a name="v:RecConE" class="def">RecConE</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:FieldExp">FieldExp</a>]</td><td class="doc"><pre>{ T { x = y, z = w } }</pre></td></tr><tr><td class="src"><a name="v:RecUpdE" class="def">RecUpdE</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH.html#t:FieldExp">FieldExp</a>]</td><td class="doc"><pre>{ (f x) { z = w } }</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Exp" class="caption collapser" onclick="toggleSection('i:Exp')">Instances</p><div id="section.i:Exp" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Con" class="def">Con</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NormalC" class="def">NormalC</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a>]</td><td class="doc"><pre>C Int a</pre></td></tr><tr><td class="src"><a name="v:RecC" class="def">RecC</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:VarStrictType">VarStrictType</a>]</td><td class="doc"><pre>C { v :: Int, w :: a }</pre></td></tr><tr><td class="src"><a name="v:InfixC" class="def">InfixC</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a></td><td class="doc"><pre>Int :+ a</pre></td></tr><tr><td class="src"><a name="v:ForallC" class="def">ForallC</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc"><pre>forall a. Eq a =&gt; C [a]</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Con" class="caption collapser" onclick="toggleSection('i:Con')">Instances</p><div id="section.i:Con" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Type" class="def">Type</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ForallT" class="def">ForallT</a> [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>forall <a href="vars">vars</a>. <a href="ctxt">ctxt</a> -&gt; <a href="type">type</a></pre></td></tr><tr><td class="src"><a name="v:VarT" class="def">VarT</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>a</pre></td></tr><tr><td class="src"><a name="v:ConT" class="def">ConT</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>T</pre></td></tr><tr><td class="src"><a name="v:TupleT" class="def">TupleT</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>(,), (,,), etc.</pre></td></tr><tr><td class="src"><a name="v:UnboxedTupleT" class="def">UnboxedTupleT</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></td><td class="doc"><pre>(<a name=","></a>), (<a name=",,"></a>), etc.</pre></td></tr><tr><td class="src"><a name="v:ArrowT" class="def">ArrowT</a></td><td class="doc"><pre>-&gt;</pre></td></tr><tr><td class="src"><a name="v:ListT" class="def">ListT</a></td><td class="doc"><pre>[]</pre></td></tr><tr><td class="src"><a name="v:AppT" class="def">AppT</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>T a b</pre></td></tr><tr><td class="src"><a name="v:SigT" class="def">SigT</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc"><pre>t :: k</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Type" class="caption collapser" onclick="toggleSection('i:Type')">Instances</p><div id="section.i:Type" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:TyVarBndr" class="def">TyVarBndr</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:PlainTV" class="def">PlainTV</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>a</pre></td></tr><tr><td class="src"><a name="v:KindedTV" class="def">KindedTV</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc"><pre>(a :: k)</pre></td></tr></table></div><div class="subs instances"><p id="control.i:TyVarBndr" class="caption collapser" onclick="toggleSection('i:TyVarBndr')">Instances</p><div id="section.i:TyVarBndr" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Kind" class="def">Kind</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:StarK" class="def">StarK</a></td><td class="doc"><pre><code><a href="../base-4.5.1.0/Prelude.html#v:-42-">*</a></code></pre></td></tr><tr><td class="src"><a name="v:ArrowK" class="def">ArrowK</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc"><pre>k1 -&gt; k2</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Kind" class="caption collapser" onclick="toggleSection('i:Kind')">Instances</p><div id="section.i:Kind" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Cxt" class="def">Cxt</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">&nbsp;= [<a href="Language-Haskell-TH.html#t:Pred">Pred</a>]</td><td class="doc"><pre>(Eq a, Ord b)</pre></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Pred" class="def">Pred</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ClassP" class="def">ClassP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Type">Type</a>]</td><td class="doc"><pre>Eq (Int, a)</pre></td></tr><tr><td class="src"><a name="v:EqualP" class="def">EqualP</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>F a ~ Bool</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Pred" class="caption collapser" onclick="toggleSection('i:Pred')">Instances</p><div id="section.i:Pred" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Match" class="def">Match</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Match" class="def">Match</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc"><pre>case e of { pat -&gt; body where decs }</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Match" class="caption collapser" onclick="toggleSection('i:Match')">Instances</p><div id="section.i:Match" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Clause" class="def">Clause</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Clause" class="def">Clause</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH.html#t:Body">Body</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc"><pre>f { p1 p2 = body where decs }</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Clause" class="caption collapser" onclick="toggleSection('i:Clause')">Instances</p><div id="section.i:Clause" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Body" class="def">Body</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:GuardedB" class="def">GuardedB</a> [(<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)]</td><td class="doc"><pre>f p { | e1 = e2 | e3 = e4 } where ds</pre></td></tr><tr><td class="src"><a name="v:NormalB" class="def">NormalB</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc"><pre>f p { = e } where ds</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Body" class="caption collapser" onclick="toggleSection('i:Body')">Instances</p><div id="section.i:Body" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Guard" class="def">Guard</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NormalG" class="def">NormalG</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PatG" class="def">PatG</a> [<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Guard" class="caption collapser" onclick="toggleSection('i:Guard')">Instances</p><div id="section.i:Guard" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Stmt" class="def">Stmt</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:BindS" class="def">BindS</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:LetS" class="def">LetS</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NoBindS" class="def">NoBindS</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ParS" class="def">ParS</a> [[<a href="Language-Haskell-TH.html#t:Stmt">Stmt</a>]]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Stmt" class="caption collapser" onclick="toggleSection('i:Stmt')">Instances</p><div id="section.i:Stmt" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Range" class="def">Range</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FromR" class="def">FromR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FromThenR" class="def">FromThenR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FromToR" class="def">FromToR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FromThenToR" class="def">FromThenToR</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Range" class="caption collapser" onclick="toggleSection('i:Range')">Instances</p><div id="section.i:Range" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Lit" class="def">Lit</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CharL" class="def">CharL</a> <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StringL" class="def">StringL</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:IntegerL" class="def">IntegerL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc"><p>Used for overloaded and non-overloaded
 literals. We don't have a good way to
 represent non-overloaded literals at
 the moment. Maybe that doesn't matter?
</p></td></tr><tr><td class="src"><a name="v:RationalL" class="def">RationalL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:IntPrimL" class="def">IntPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:WordPrimL" class="def">WordPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FloatPrimL" class="def">FloatPrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DoublePrimL" class="def">DoublePrimL</a> <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StringPrimL" class="def">StringPrimL</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></td><td class="doc"><p>A primitive C-style string, type Addr#
</p></td></tr></table></div><div class="subs instances"><p id="control.i:Lit" class="caption collapser" onclick="toggleSection('i:Lit')">Instances</p><div id="section.i:Lit" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Pat" class="def">Pat</a>  </p><div class="doc"><p>Pattern in Haskell given in <code>{}</code>
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:LitP" class="def">LitP</a> <a href="Language-Haskell-TH.html#t:Lit">Lit</a></td><td class="doc"><pre>{ 5 or <code>c</code> }</pre></td></tr><tr><td class="src"><a name="v:VarP" class="def">VarP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc"><pre>{ x }</pre></td></tr><tr><td class="src"><a name="v:TupP" class="def">TupP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]</td><td class="doc"><pre>{ (p1,p2) }</pre></td></tr><tr><td class="src"><a name="v:UnboxedTupP" class="def">UnboxedTupP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]</td><td class="doc"><pre>{ (<a name=" p1,p2 "></a>) }</pre></td></tr><tr><td class="src"><a name="v:ConP" class="def">ConP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]</td><td class="doc"><pre>data T1 = C1 t1 t2; {C1 p1 p1} = e</pre></td></tr><tr><td class="src"><a name="v:InfixP" class="def">InfixP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>foo ({x :+ y}) = e</pre></td></tr><tr><td class="src"><a name="v:UInfixP" class="def">UInfixP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>foo ({x :+ y}) = e</pre><p>See Note [Unresolved infix] at <a href="Language-Haskell-TH-Syntax.html#infix">Language.Haskell.TH.Syntax</a>
</p></td></tr><tr><td class="src"><a name="v:ParensP" class="def">ParensP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>{(p)}</pre><p>See Note [Unresolved infix] at <a href="Language-Haskell-TH-Syntax.html#infix">Language.Haskell.TH.Syntax</a>
</p></td></tr><tr><td class="src"><a name="v:TildeP" class="def">TildeP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>{ ~p }</pre></td></tr><tr><td class="src"><a name="v:BangP" class="def">BangP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>{ !p }</pre></td></tr><tr><td class="src"><a name="v:AsP" class="def">AsP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>{ x @ p }</pre></td></tr><tr><td class="src"><a name="v:WildP" class="def">WildP</a></td><td class="doc"><pre>{ _ }</pre></td></tr><tr><td class="src"><a name="v:RecP" class="def">RecP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> [<a href="Language-Haskell-TH.html#t:FieldPat">FieldPat</a>]</td><td class="doc"><pre>f (Pt { pointx = x }) = g x</pre></td></tr><tr><td class="src"><a name="v:ListP" class="def">ListP</a> [<a href="Language-Haskell-TH.html#t:Pat">Pat</a>]</td><td class="doc"><pre>{ [1,2,3] }</pre></td></tr><tr><td class="src"><a name="v:SigP" class="def">SigP</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc"><pre>{ p :: t }</pre></td></tr><tr><td class="src"><a name="v:ViewP" class="def">ViewP</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc"><pre>{ e -&gt; p }</pre></td></tr></table></div><div class="subs instances"><p id="control.i:Pat" class="caption collapser" onclick="toggleSection('i:Pat')">Instances</p><div id="section.i:Pat" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FieldExp" class="def">FieldExp</a> = (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FieldPat" class="def">FieldPat</a> = (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Pat">Pat</a>)</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Strict" class="def">Strict</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:IsStrict" class="def">IsStrict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:NotStrict" class="def">NotStrict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Unpacked" class="def">Unpacked</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Strict" class="caption collapser" onclick="toggleSection('i:Strict')">Instances</p><div id="section.i:Strict" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Foreign" class="def">Foreign</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ImportF" class="def">ImportF</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:ExportF" class="def">ExportF</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Foreign" class="caption collapser" onclick="toggleSection('i:Foreign')">Instances</p><div id="section.i:Foreign" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Callconv" class="def">Callconv</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:CCall" class="def">CCall</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:StdCall" class="def">StdCall</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Callconv" class="caption collapser" onclick="toggleSection('i:Callconv')">Instances</p><div id="section.i:Callconv" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Safety" class="def">Safety</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Unsafe" class="def">Unsafe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Safe" class="def">Safe</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Interruptible" class="def">Interruptible</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Safety" class="caption collapser" onclick="toggleSection('i:Safety')">Instances</p><div id="section.i:Safety" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Safety">Safety</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Pragma" class="def">Pragma</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:InlineP" class="def">InlineP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:SpecialiseP" class="def">SpecialiseP</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a>)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Pragma" class="caption collapser" onclick="toggleSection('i:Pragma')">Instances</p><div id="section.i:Pragma" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:InlineSpec" class="def">InlineSpec</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:InlineSpec" class="def">InlineSpec</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> (<a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>))</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:InlineSpec" class="caption collapser" onclick="toggleSection('i:InlineSpec')">Instances</p><div id="section.i:InlineSpec" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FunDep" class="def">FunDep</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:FunDep" class="def">FunDep</a> [<a href="Language-Haskell-TH.html#t:Name">Name</a>] [<a href="Language-Haskell-TH.html#t:Name">Name</a>]</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:FunDep" class="caption collapser" onclick="toggleSection('i:FunDep')">Instances</p><div id="section.i:FunDep" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FamFlavour" class="def">FamFlavour</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:TypeFam" class="def">TypeFam</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DataFam" class="def">DataFam</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:FamFlavour" class="caption collapser" onclick="toggleSection('i:FamFlavour')">Instances</p><div id="section.i:FamFlavour" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Info" class="def">Info</a>  </p><div class="doc"><p>Obtained from <code><a href="Language-Haskell-TH.html#v:reify">reify</a></code> in the <code><a href="Language-Haskell-TH.html#t:Q">Q</a></code> Monad.
</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:ClassI" class="def">ClassI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a> [InstanceDec]</td><td class="doc"><p>A class is reified to its declaration 
   and a list of its instances
</p></td></tr><tr><td class="src"><a name="v:ClassOpI" class="def">ClassOpI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TyConI" class="def">TyConI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:FamilyI" class="def">FamilyI</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a> [InstanceDec]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:PrimTyConI" class="def">PrimTyConI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:DataConI" class="def">DataConI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:VarI" class="def">VarI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a>) <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:TyVarI" class="def">TyVarI</a> <a href="Language-Haskell-TH.html#t:Name">Name</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Info" class="caption collapser" onclick="toggleSection('i:Info')">Instances</p><div id="section.i:Info" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Loc" class="def">Loc</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Loc" class="def">Loc</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div class="subs fields"><p class="caption">Fields</p><dl><dt class="src"><a name="v:loc_filename" class="def">loc_filename</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:loc_package" class="def">loc_package</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:loc_module" class="def">loc_module</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:loc_start" class="def">loc_start</a> :: <a href="Language-Haskell-TH-Syntax.html#t:CharPos">CharPos</a></dt><dd class="doc empty">&nbsp;</dd><dt class="src"><a name="v:loc_end" class="def">loc_end</a> :: <a href="Language-Haskell-TH-Syntax.html#t:CharPos">CharPos</a></dt><dd class="doc empty">&nbsp;</dd></dl><div class="clear"></div></div></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:Fixity" class="def">Fixity</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Fixity" class="def">Fixity</a> <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Fixity" class="caption collapser" onclick="toggleSection('i:Fixity')">Instances</p><div id="section.i:Fixity" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:FixityDirection" class="def">FixityDirection</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:InfixL" class="def">InfixL</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:InfixR" class="def">InfixR</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:InfixN" class="def">InfixN</a></td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:FixityDirection" class="caption collapser" onclick="toggleSection('i:FixityDirection')">Instances</p><div id="section.i:FixityDirection" class="show"><table><tr><td class="src"><a href="../base-4.5.1.0/Data-Eq.html#t:Eq">Eq</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Data.html#t:Data">Data</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Text-Show.html#t:Show">Show</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="../base-4.5.1.0/Data-Typeable-Internal.html#t:Typeable">Typeable</a> <a href="Language-Haskell-TH.html#t:FixityDirection">FixityDirection</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:defaultFixity" class="def">defaultFixity</a> :: <a href="Language-Haskell-TH.html#t:Fixity">Fixity</a></p></div><div class="top"><p class="src"><a name="v:maxPrecedence" class="def">maxPrecedence</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><h1 id="g:4">Library functions
</h1><h2 id="g:5">Abbreviations
</h2><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:InfoQ" class="def">InfoQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ExpQ" class="def">ExpQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DecQ" class="def">DecQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:DecsQ" class="def">DecsQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> [<a href="Language-Haskell-TH.html#t:Dec">Dec</a>]</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ConQ" class="def">ConQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:TypeQ" class="def">TypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:CxtQ" class="def">CxtQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Cxt">Cxt</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:PredQ" class="def">PredQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:MatchQ" class="def">MatchQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:ClauseQ" class="def">ClauseQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:BodyQ" class="def">BodyQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Body">Body</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:GuardQ" class="def">GuardQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Guard">Guard</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:StmtQ" class="def">StmtQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:RangeQ" class="def">RangeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:StrictTypeQ" class="def">StrictTypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:StrictType">StrictType</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VarStrictTypeQ" class="def">VarStrictTypeQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:VarStrictType">VarStrictType</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:PatQ" class="def">PatQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:FieldPatQ" class="def">FieldPatQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:FieldPat">FieldPat</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:InlineSpecQ" class="def">InlineSpecQ</a> = <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:InlineSpec">InlineSpec</a></p></div><h2 id="g:6">Constructors lifted to <code><a href="Language-Haskell-TH.html#t:Q">Q</a></code>
</h2><h3 id="g:7">Literals
</h3><div class="top"><p class="src"><a name="v:intPrimL" class="def">intPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:wordPrimL" class="def">wordPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:floatPrimL" class="def">floatPrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:doublePrimL" class="def">doublePrimL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:integerL" class="def">integerL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Integer">Integer</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:rationalL" class="def">rationalL</a> :: <a href="../base-4.5.1.0/Prelude.html#t:Rational">Rational</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:charL" class="def">charL</a> :: <a href="../base-4.5.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:stringL" class="def">stringL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><div class="top"><p class="src"><a name="v:stringPrimL" class="def">stringPrimL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a></p></div><h3 id="g:8">Patterns
</h3><div class="top"><p class="src"><a name="v:litP" class="def">litP</a> :: <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:varP" class="def">varP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:tupP" class="def">tupP</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:conP" class="def">conP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:uInfixP" class="def">uInfixP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:parensP" class="def">parensP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:infixP" class="def">infixP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:tildeP" class="def">tildeP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:bangP" class="def">bangP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:asP" class="def">asP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:wildP" class="def">wildP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:recP" class="def">recP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:FieldPatQ">FieldPatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:listP" class="def">listP</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:sigP" class="def">sigP</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:viewP" class="def">viewP</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a></p></div><div class="top"><p class="src"><a name="v:fieldPat" class="def">fieldPat</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:FieldPatQ">FieldPatQ</a></p></div><h3 id="g:9">Pattern Guards
</h3><div class="top"><p class="src"><a name="v:normalB" class="def">normalB</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a></p></div><div class="top"><p class="src"><a name="v:guardedB" class="def">guardedB</a> :: [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a></p></div><div class="top"><p class="src"><a name="v:normalG" class="def">normalG</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:GuardQ">GuardQ</a></p></div><div class="top"><p class="src"><a name="v:normalGE" class="def">normalGE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</p></div><div class="top"><p class="src"><a name="v:patG" class="def">patG</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:GuardQ">GuardQ</a></p></div><div class="top"><p class="src"><a name="v:patGE" class="def">patGE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</p></div><div class="top"><p class="src"><a name="v:match" class="def">match</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:MatchQ">MatchQ</a></p><div class="doc"><p>Use with <code><a href="Language-Haskell-TH.html#v:caseE">caseE</a></code>
</p></div></div><div class="top"><p class="src"><a name="v:clause" class="def">clause</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ClauseQ">ClauseQ</a></p><div class="doc"><p>Use with <code><a href="Language-Haskell-TH.html#v:funD">funD</a></code>
</p></div></div><h3 id="g:10">Expressions
</h3><div class="top"><p class="src"><a name="v:dyn" class="def">dyn</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></p><div class="doc"><p>Dynamically binding a variable (unhygenic)
</p></div></div><div class="top"><p class="src"><a name="v:global" class="def">global</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:varE" class="def">varE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:conE" class="def">conE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:litE" class="def">litE</a> :: <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:appE" class="def">appE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:uInfixE" class="def">uInfixE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:parensE" class="def">parensE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:infixE" class="def">infixE</a> :: <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:infixApp" class="def">infixApp</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:sectionL" class="def">sectionL</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:sectionR" class="def">sectionR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:lamE" class="def">lamE</a> :: [<a href="Language-Haskell-TH.html#t:PatQ">PatQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:lam1E" class="def">lam1E</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p><div class="doc"><p>Single-arg lambda
</p></div></div><div class="top"><p class="src"><a name="v:tupE" class="def">tupE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:condE" class="def">condE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:letE" class="def">letE</a> :: [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:caseE" class="def">caseE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:MatchQ">MatchQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:appsE" class="def">appsE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:listE" class="def">listE</a> :: [<a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:sigE" class="def">sigE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:recConE" class="def">recConE</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:recUpdE" class="def">recUpdE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:stringE" class="def">stringE</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:fieldExp" class="def">fieldExp</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Name">Name</a>, <a href="Language-Haskell-TH.html#t:Exp">Exp</a>)</p></div><h4 id="g:11">Ranges
</h4><div class="top"><p class="src"><a name="v:fromE" class="def">fromE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:fromThenE" class="def">fromThenE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:fromToE" class="def">fromToE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:fromThenToE" class="def">fromThenToE</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><h4 id="g:12">Ranges with more indirection
</h4><div class="top"><p class="src"><a name="v:arithSeqE" class="def">arithSeqE</a> :: <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:fromR" class="def">fromR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></p></div><div class="top"><p class="src"><a name="v:fromThenR" class="def">fromThenR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></p></div><div class="top"><p class="src"><a name="v:fromToR" class="def">fromToR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></p></div><div class="top"><p class="src"><a name="v:fromThenToR" class="def">fromThenToR</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:RangeQ">RangeQ</a></p></div><h4 id="g:13">Statements
</h4><div class="top"><p class="src"><a name="v:doE" class="def">doE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:compE" class="def">compE</a> :: [<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a></p></div><div class="top"><p class="src"><a name="v:bindS" class="def">bindS</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></p></div><div class="top"><p class="src"><a name="v:letS" class="def">letS</a> :: [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></p></div><div class="top"><p class="src"><a name="v:noBindS" class="def">noBindS</a> :: <a href="Language-Haskell-TH.html#t:ExpQ">ExpQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></p></div><div class="top"><p class="src"><a name="v:parS" class="def">parS</a> :: [[<a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a>]] -&gt; <a href="Language-Haskell-TH.html#t:StmtQ">StmtQ</a></p></div><h3 id="g:14">Types
</h3><div class="top"><p class="src"><a name="v:forallT" class="def">forallT</a> :: [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:varT" class="def">varT</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:conT" class="def">conT</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:appT" class="def">appT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:arrowT" class="def">arrowT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:listT" class="def">listT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:tupleT" class="def">tupleT</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><div class="top"><p class="src"><a name="v:sigT" class="def">sigT</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Kind">Kind</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a></p></div><h4 id="g:15">Strictness
</h4><div class="top"><p class="src"><a name="v:isStrict" class="def">isStrict</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></p></div><div class="top"><p class="src"><a name="v:notStrict" class="def">notStrict</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a></p></div><div class="top"><p class="src"><a name="v:strictType" class="def">strictType</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> <a href="Language-Haskell-TH.html#t:Strict">Strict</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a></p></div><div class="top"><p class="src"><a name="v:varStrictType" class="def">varStrictType</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:VarStrictTypeQ">VarStrictTypeQ</a></p></div><h4 id="g:16">Class Contexts
</h4><div class="top"><p class="src"><a name="v:cxt" class="def">cxt</a> :: [<a href="Language-Haskell-TH.html#t:PredQ">PredQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a></p></div><div class="top"><p class="src"><a name="v:classP" class="def">classP</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:PredQ">PredQ</a></p></div><div class="top"><p class="src"><a name="v:equalP" class="def">equalP</a> :: <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:PredQ">PredQ</a></p></div><div class="top"><p class="src"><a name="v:normalC" class="def">normalC</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:StrictTypeQ">StrictTypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></p></div><div class="top"><p class="src"><a name="v:recC" class="def">recC</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:VarStrictTypeQ">VarStrictTypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></p></div><div class="top"><p class="src"><a name="v:infixC" class="def">infixC</a> :: <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH.html#t:Type">Type</a>) -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:Q">Q</a> (<a href="Language-Haskell-TH.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH.html#t:Type">Type</a>) -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a></p></div><h3 id="g:17">Top Level Declarations
</h3><h4 id="g:18">Data
</h4><div class="top"><p class="src"><a name="v:valD" class="def">valD</a> :: <a href="Language-Haskell-TH.html#t:PatQ">PatQ</a> -&gt; <a href="Language-Haskell-TH.html#t:BodyQ">BodyQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:funD" class="def">funD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:ClauseQ">ClauseQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:tySynD" class="def">tySynD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:dataD" class="def">dataD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; [<a href="Language-Haskell-TH.html#t:ConQ">ConQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:newtypeD" class="def">newtypeD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><h4 id="g:19">Class
</h4><div class="top"><p class="src"><a name="v:classD" class="def">classD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; [<a href="Language-Haskell-TH.html#t:FunDep">FunDep</a>] -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:instanceD" class="def">instanceD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:DecQ">DecQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:sigD" class="def">sigD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><h4 id="g:20">Type Family / Data Family
</h4><div class="top"><p class="src"><a name="v:familyNoKindD" class="def">familyNoKindD</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:familyKindD" class="def">familyKindD</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a>] -&gt; <a href="Language-Haskell-TH.html#t:Kind">Kind</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:dataInstD" class="def">dataInstD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:ConQ">ConQ</a>] -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:newtypeInstD" class="def">newtypeInstD</a> :: <a href="Language-Haskell-TH.html#t:CxtQ">CxtQ</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:ConQ">ConQ</a> -&gt; [<a href="Language-Haskell-TH.html#t:Name">Name</a>] -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:tySynInstD" class="def">tySynInstD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a>] -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:typeFam" class="def">typeFam</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></p></div><div class="top"><p class="src"><a name="v:dataFam" class="def">dataFam</a> :: <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></p></div><h4 id="g:21">Foreign Function Interface (FFI)
</h4><div class="top"><p class="src"><a name="v:cCall" class="def">cCall</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></p></div><div class="top"><p class="src"><a name="v:stdCall" class="def">stdCall</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a></p></div><div class="top"><p class="src"><a name="v:unsafe" class="def">unsafe</a> :: <a href="Language-Haskell-TH.html#t:Safety">Safety</a></p></div><div class="top"><p class="src"><a name="v:safe" class="def">safe</a> :: <a href="Language-Haskell-TH.html#t:Safety">Safety</a></p></div><div class="top"><p class="src"><a name="v:forImpD" class="def">forImpD</a> :: <a href="Language-Haskell-TH.html#t:Callconv">Callconv</a> -&gt; <a href="Language-Haskell-TH.html#t:Safety">Safety</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><h4 id="g:22">Pragmas
</h4><div class="doc"><p>Just inline supported so far
</p></div><div class="top"><p class="src"><a name="v:inlineSpecNoPhase" class="def">inlineSpecNoPhase</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a></p></div><div class="top"><p class="src"><a name="v:inlineSpecPhase" class="def">inlineSpecPhase</a> :: <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Bool.html#t:Bool">Bool</a> -&gt; <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a></p></div><div class="top"><p class="src"><a name="v:pragInlD" class="def">pragInlD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:InlineSpecQ">InlineSpecQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><div class="top"><p class="src"><a name="v:pragSpecD" class="def">pragSpecD</a> :: <a href="Language-Haskell-TH.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH.html#t:TypeQ">TypeQ</a> -&gt; <a href="Language-Haskell-TH.html#t:DecQ">DecQ</a></p></div><h1 id="g:23">Pretty-printer
</h1><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Ppr" class="def">Ppr</a> a  <span class="keyword">where</span></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:ppr" class="def">ppr</a> :: a -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p><p class="src"><a name="v:ppr_list" class="def">ppr_list</a> :: [a] -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p></div><div class="subs instances"><p id="control.i:Ppr" class="caption collapser" onclick="toggleSection('i:Ppr')">Instances</p><div id="section.i:Ppr" class="show"><table><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> a =&gt; <a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> [a]</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:pprint" class="def">pprint</a> :: <a href="Language-Haskell-TH.html#t:Ppr">Ppr</a> a =&gt; a -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><a name="v:pprExp" class="def">pprExp</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Exp">Exp</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:pprLit" class="def">pprLit</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Lit">Lit</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:pprPat" class="def">pprPat</a> :: <a href="Language-Haskell-TH-Ppr.html#t:Precedence">Precedence</a> -&gt; <a href="Language-Haskell-TH.html#t:Pat">Pat</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p></div><div class="top"><p class="src"><a name="v:pprParendType" class="def">pprParendType</a> :: <a href="Language-Haskell-TH.html#t:Type">Type</a> -&gt; <a href="Language-Haskell-TH-PprLib.html#t:Doc">Doc</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.11.0</p></div></body></html>