Sophie

Sophie

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

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.Syntax</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-Syntax.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>Portability</th><td>portable</td></tr><tr><th>Stability</th><td>experimental</td></tr><tr><th>Maintainer</th><td>libraries@haskell.org</td></tr><tr><th>Safe Haskell</th><td>None</td></tr></table><p class="caption">Language.Haskell.TH.Syntax</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Names
</a></li><li><a href="#g:2">The algebraic data types
</a></li><li><a href="#g:3">Internal functions
</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>Abstract syntax definitions for Template Haskell.
</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">class</span> (<a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="../base-4.5.1.0/Control-Applicative.html#t:Applicative">Applicative</a> m) =&gt; <a href="#t:Quasi">Quasi</a> m  <span class="keyword">where</span><ul class="subs"><li><a href="#v:qNewName">qNewName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; m <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li><a href="#v:qReport">qReport</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; m ()</li><li><a href="#v:qRecover">qRecover</a> ::  m a -&gt; m a -&gt; m a</li><li><a href="#v:qLookupName">qLookupName</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; m (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>)</li><li><a href="#v:qReify">qReify</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; m <a href="Language-Haskell-TH-Syntax.html#t:Info">Info</a></li><li><a href="#v:qReifyInstances">qReifyInstances</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; m [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li><a href="#v:qLocation">qLocation</a> :: m <a href="Language-Haskell-TH-Syntax.html#t:Loc">Loc</a></li><li><a href="#v:qRunIO">qRunIO</a> ::  <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> a -&gt; m a</li><li><a href="#v:qAddDependentFile">qAddDependentFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; m ()</li></ul></li><li class="src short"><span class="keyword">class</span>  <a href="#t:Lift">Lift</a> t  <span class="keyword">where</span><ul class="subs"><li><a href="#v:lift">lift</a> :: t -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li></ul></li><li class="src short"><a href="#v:liftString">liftString</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><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-Syntax.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-Syntax.html#t:Q">Q</a> ()</li><li class="src short"><a href="#v:recover">recover</a> ::  <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a</li><li class="src short"><a href="#v:reify">reify</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Info">Info</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-Syntax.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>)</li><li class="src short"><a href="#v:location">location</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Q">Q</a> a</li><li class="src short"><a href="#v:addDependentFile">addDependentFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> ()</li><li class="src short"><a href="#v:isInstance">isInstance</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:Name">Name</a>  = <a href="#v:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a> <a href="Language-Haskell-TH-Syntax.html#t:NameFlavour">NameFlavour</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-Syntax.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-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:nameBase">nameBase</a> :: <a href="Language-Haskell-TH-Syntax.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-Syntax.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:showName">showName</a> :: <a href="Language-Haskell-TH-Syntax.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:showName-39-">showName'</a> :: <a href="Language-Haskell-TH-Syntax.html#t:NameIs">NameIs</a> -&gt; <a href="Language-Haskell-TH-Syntax.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"><span class="keyword">data</span>  <a href="#t:NameIs">NameIs</a> <ul class="subs"><li>= <a href="#v:Alone">Alone</a>  </li><li>| <a href="#v:Applied">Applied</a>  </li><li>| <a href="#v:Infix">Infix</a>  </li></ul></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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Clause">Clause</a>]  </li><li>| <a href="#v:ValD">ValD</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:DataD">DataD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>]  </li><li>| <a href="#v:NewtypeD">NewtypeD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a> [<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>]  </li><li>| <a href="#v:TySynD">TySynD</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:ClassD">ClassD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH-Syntax.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:InstanceD">InstanceD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:SigD">SigD</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:ForeignD">ForeignD</a> <a href="Language-Haskell-TH-Syntax.html#t:Foreign">Foreign</a>  </li><li>| <a href="#v:PragmaD">PragmaD</a> <a href="Language-Haskell-TH-Syntax.html#t:Pragma">Pragma</a>  </li><li>| <a href="#v:FamilyD">FamilyD</a> <a href="Language-Haskell-TH-Syntax.html#t:FamFlavour">FamFlavour</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Kind">Kind</a>)  </li><li>| <a href="#v:DataInstD">DataInstD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>]  </li><li>| <a href="#v:NewtypeInstD">NewtypeInstD</a> <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] <a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a> [<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>]  </li><li>| <a href="#v:TySynInstD">TySynInstD</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:ConE">ConE</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:LitE">LitE</a> <a href="Language-Haskell-TH-Syntax.html#t:Lit">Lit</a>  </li><li>| <a href="#v:AppE">AppE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a>) <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>)  </li><li>| <a href="#v:UInfixE">UInfixE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ParensE">ParensE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LamE">LamE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:TupE">TupE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:UnboxedTupE">UnboxedTupE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:CondE">CondE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LetE">LetE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:CaseE">CaseE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH-Syntax.html#t:Match">Match</a>]  </li><li>| <a href="#v:DoE">DoE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:CompE">CompE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Stmt">Stmt</a>]  </li><li>| <a href="#v:ArithSeqE">ArithSeqE</a> <a href="Language-Haskell-TH-Syntax.html#t:Range">Range</a>  </li><li>| <a href="#v:ListE">ListE</a> [<a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>]  </li><li>| <a href="#v:SigE">SigE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:RecConE">RecConE</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:FieldExp">FieldExp</a>]  </li><li>| <a href="#v:RecUpdE">RecUpdE</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:VarT">VarT</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:ConT">ConT</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:SigT">SigT</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:KindedTV">KindedTV</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Kind">Kind</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>]  </li><li>| <a href="#v:EqualP">EqualP</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>)]  </li><li>| <a href="#v:NormalB">NormalB</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:PatG">PatG</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:LetS">LetS</a> [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]  </li><li>| <a href="#v:NoBindS">NoBindS</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:ParS">ParS</a> [[<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromThenR">FromThenR</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromToR">FromToR</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>  </li><li>| <a href="#v:FromThenToR">FromThenToR</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Lit">Lit</a>  </li><li>| <a href="#v:VarP">VarP</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>  </li><li>| <a href="#v:TupP">TupP</a> [<a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:UnboxedTupP">UnboxedTupP</a> [<a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:ConP">ConP</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:InfixP">InfixP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:UInfixP">UInfixP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:ParensP">ParensP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:TildeP">TildeP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:BangP">BangP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>  </li><li>| <a href="#v:AsP">AsP</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:FieldPat">FieldPat</a>]  </li><li>| <a href="#v:ListP">ListP</a> [<a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>]  </li><li>| <a href="#v:SigP">SigP</a> <a href="Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:ViewP">ViewP</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Callconv">Callconv</a> <a href="Language-Haskell-TH-Syntax.html#t:Safety">Safety</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>  </li><li>| <a href="#v:ExportF">ExportF</a> <a href="Language-Haskell-TH-Syntax.html#t:Callconv">Callconv</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:InlineSpec">InlineSpec</a>  </li><li>| <a href="#v:SpecialiseP">SpecialiseP</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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">type</span> <a href="#t:StrictType">StrictType</a> = (<a href="Language-Haskell-TH-Syntax.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>)</li><li class="src short"><span class="keyword">type</span> <a href="#t:VarStrictType">VarStrictType</a> = (<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</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-Syntax.html#t:Name">Name</a>] [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Dec">Dec</a> [InstanceDec]  </li><li>| <a href="#v:ClassOpI">ClassOpI</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:TyConI">TyConI</a> <a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>  </li><li>| <a href="#v:FamilyI">FamilyI</a> <a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> [InstanceDec]  </li><li>| <a href="#v:PrimTyConI">PrimTyConI</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:VarI">VarI</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>) <a href="Language-Haskell-TH-Syntax.html#t:Fixity">Fixity</a>  </li><li>| <a href="#v:TyVarI">TyVarI</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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">type</span> <a href="#t:CharPos">CharPos</a> = (<a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</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: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-Syntax.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-Syntax.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"><a href="#v:returnQ">returnQ</a> ::  a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a</li><li class="src short"><a href="#v:bindQ">bindQ</a> ::  <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a -&gt; (a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> b) -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> b</li><li class="src short"><a href="#v:sequenceQ">sequenceQ</a> ::  [<a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a] -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> [a]</li><li class="src short"><span class="keyword">data</span>  <a href="#t:NameFlavour">NameFlavour</a> <ul class="subs"><li>= <a href="#v:NameS">NameS</a>  </li><li>| <a href="#v:NameQ">NameQ</a> <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a>  </li><li>| <a href="#v:NameU">NameU</a> Int#  </li><li>| <a href="#v:NameL">NameL</a> Int#  </li><li>| <a href="#v:NameG">NameG</a> <a href="Language-Haskell-TH-Syntax.html#t:NameSpace">NameSpace</a> <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a> <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a>  </li></ul></li><li class="src short"><span class="keyword">data</span>  <a href="#t:NameSpace">NameSpace</a> <ul class="subs"><li>= <a href="#v:VarName">VarName</a>  </li><li>| <a href="#v:DataName">DataName</a>  </li><li>| <a href="#v:TcClsName">TcClsName</a>  </li></ul></li><li class="src short"><a href="#v:mkNameG_v">mkNameG_v</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkNameG_d">mkNameG_d</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkNameG_tc">mkNameG_tc</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><span class="keyword">type</span> <a href="#t:Uniq">Uniq</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></li><li class="src short"><a href="#v:mkNameL">mkNameL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Uniq">Uniq</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:mkNameU">mkNameU</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Uniq">Uniq</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</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-Syntax.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-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:unboxedTupleTypeName">unboxedTupleTypeName</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><a href="#v:unboxedTupleDataName">unboxedTupleDataName</a> :: <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:OccName">OccName</a> </li><li class="src short"><a href="#v:mkOccName">mkOccName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a></li><li class="src short"><a href="#v:occString">occString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:ModName">ModName</a> </li><li class="src short"><a href="#v:mkModName">mkModName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a></li><li class="src short"><a href="#v:modString">modString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li><li class="src short"><span class="keyword">data</span>  <a href="#t:PkgName">PkgName</a> </li><li class="src short"><a href="#v:mkPkgName">mkPkgName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a></li><li class="src short"><a href="#v:pkgString">pkgString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></li></ul></div><div id="interface"><h1>Documentation</h1><div class="top"><p class="src"><span class="keyword">class</span> (<a href="../base-4.5.1.0/Control-Monad.html#t:Monad">Monad</a> m, <a href="../base-4.5.1.0/Control-Applicative.html#t:Applicative">Applicative</a> m) =&gt; <a name="t:Quasi" class="def">Quasi</a> m  <span class="keyword">where</span></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:qNewName" class="def">qNewName</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <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">-&gt; m <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></td><td class="doc"><p>Fresh names
</p></td></tr></table></div><p class="src"><a name="v:qReport" class="def">qReport</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: <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">-&gt; <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">-&gt; m ()</td><td class="doc"><p>Report an error (True) or warning (False)
 ...but carry on; use <code><a href="../base-4.5.1.0/Control-Monad.html#v:fail">fail</a></code> to stop
</p></td></tr></table></div><p class="src"><a name="v:qRecover" class="def">qRecover</a></p><div class="subs arguments"><p class="caption">Arguments</p><table><tr><td class="src">:: m a</td><td class="doc"><p>the error handler
</p></td></tr><tr><td class="src">-&gt; m a</td><td class="doc"><p>action which may fail
</p></td></tr><tr><td class="src">-&gt; m a</td><td class="doc"><p>Recover from the monadic <code><a href="../base-4.5.1.0/Control-Monad.html#v:fail">fail</a></code>
</p></td></tr></table></div><p class="src"><a name="v:qLookupName" class="def">qLookupName</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; m (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>)</p><p class="src"><a name="v:qReify" class="def">qReify</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; m <a href="Language-Haskell-TH-Syntax.html#t:Info">Info</a></p><p class="src"><a name="v:qReifyInstances" class="def">qReifyInstances</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; m [<a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</p><p class="src"><a name="v:qLocation" class="def">qLocation</a> :: m <a href="Language-Haskell-TH-Syntax.html#t:Loc">Loc</a></p><p class="src"><a name="v:qRunIO" class="def">qRunIO</a> ::  <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</a> a -&gt; m a</p><div class="doc"><p>Input/output (dangerous)
</p></div><p class="src"><a name="v:qAddDependentFile" class="def">qAddDependentFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; m ()</p></div><div class="subs instances"><p id="control.i:Quasi" class="caption collapser" onclick="toggleSection('i:Quasi')">Instances</p><div id="section.i:Quasi" class="show"><table><tr><td class="src"><a href="Language-Haskell-TH-Syntax.html#t:Quasi">Quasi</a> <a href="../base-4.5.1.0/System-IO.html#t:IO">IO</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-Syntax.html#t:Q">Q</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span>  <a name="t:Lift" class="def">Lift</a> t  <span class="keyword">where</span></p><div class="subs methods"><p class="caption">Methods</p><p class="src"><a name="v:lift" class="def">lift</a> :: t -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></p></div><div class="subs instances"><p id="control.i:Lift" class="caption collapser" onclick="toggleSection('i:Lift')">Instances</p><div id="section.i:Lift" class="show"><table><tr><td class="src"><a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</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 href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</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 href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> <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"><a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</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 href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> [a]</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> a)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (<a href="../base-4.5.1.0/Data-Either.html#t:Either">Either</a> a b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> c) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b, c)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> c, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> d) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b, c, d)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> c, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> d, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> e) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b, c, d, e)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> c, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> d, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> e, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> f) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b, c, d, e, f)</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src">(<a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> a, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> b, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> c, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> d, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> e, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> f, <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> g) =&gt; <a href="Language-Haskell-TH-Syntax.html#t:Lift">Lift</a> (a, b, c, d, e, f, g)</td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:liftString" class="def">liftString</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></p></div><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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Info">Info</a></p><div class="doc"><p><code><a href="Language-Haskell-TH-Syntax.html#v:reify">reify</a></code> looks up information about the <code><a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></code>
</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-Syntax.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Q">Q</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>)</p></div><div class="top"><p class="src"><a name="v:location" class="def">location</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.html#t:Loc">Loc</a></p><div class="doc"><p><code><a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Q">Q</a> a</p><div class="doc"><p>The <code><a href="Language-Haskell-TH-Syntax.html#v:runIO">runIO</a></code> function lets you run an I/O computation in the <code><a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a></code> monad.
 Take care: you are guaranteed the ordering of calls to <code><a href="Language-Haskell-TH-Syntax.html#v:runIO">runIO</a></code> within 
 a single <code><a href="Language-Haskell-TH-Syntax.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:addDependentFile" class="def">addDependentFile</a> :: <a href="../base-4.5.1.0/System-IO.html#t:FilePath">FilePath</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> ()</p><div class="doc"><p>Record external files that runIO is using (dependent upon).
 The compiler can then recognize that it should re-compile the file using this TH when the external file changes.
 Note that ghc -M will still not know about these dependencies - it does not execute TH.
 Expects an absolute file path.
</p></div></div><div class="top"><p class="src"><a name="v:isInstance" class="def">isInstance</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> -&gt; [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> [<a href="Language-Haskell-TH-Syntax.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:1">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 constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Name" class="def">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a> <a href="Language-Haskell-TH-Syntax.html#t:NameFlavour">NameFlavour</a></td><td class="doc empty">&nbsp;</td></tr></table></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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</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-Syntax.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-Syntax.html#t:Q">Q</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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:showName" class="def">showName</a> :: <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</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:showName-39-" class="def">showName'</a> :: <a href="Language-Haskell-TH-Syntax.html#t:NameIs">NameIs</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:NameIs" class="def">NameIs</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:Alone" class="def">Alone</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Applied" class="def">Applied</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a name="v:Infix" class="def">Infix</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div><h1 id="g:2">The algebraic data types
</h1><div class="doc"><p><a name="infix"></a>
Note [Unresolved infix]
~~~~~~~~~~~~~~~~~~~~~~~
</p><p>When implementing antiquotation for quasiquoters, one often wants
to parse strings into expressions:
</p><pre> parse :: String -&gt; Maybe 'Exp'
</pre><p>But how should we parse <code>a + b * c</code>? If we don't know the fixities of
<code>+</code> and <code>*</code>, we don't know whether to parse it as <code>a + (b * c)</code> or <code>(a
+ b) * c</code>.
</p><p>In cases like this, use <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixE">UInfixE</a></code> or <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixP">UInfixP</a></code>, which stand for
&quot;unresolved infix expression&quot; and &quot;unresolved infix pattern&quot;. When
the compiler is given a splice containing a tree of <code>UInfixE</code>
applications such as
</p><pre> UInfixE
   (UInfixE e1 op1 e2)
   op2
   (UInfixE e3 op3 e4)
</pre><p>it will look up and the fixities of the relevant operators and
reassociate the tree as necessary.
</p><ul><li> trees will not be reassociated across <code><a href="Language-Haskell-TH-Syntax.html#v:ParensE">ParensE</a></code> or <code><a href="Language-Haskell-TH-Syntax.html#v:ParensP">ParensP</a></code>,
    which are of use for parsing expressions like
</li></ul><pre> (a + b * c) + d * e
</pre><ul><li> <code><a href="Language-Haskell-TH-Syntax.html#v:InfixE">InfixE</a></code> and <code><a href="Language-Haskell-TH-Syntax.html#v:InfixP">InfixP</a></code> expressions are never reassociated.
</li><li> The <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixE">UInfixE</a></code> constructor doesn't support sections. Sections
    such as <code>(a *)</code> have no ambiguity, so <code><a href="Language-Haskell-TH-Syntax.html#v:InfixE">InfixE</a></code> suffices. For longer
    sections such as <code>(a + b * c -)</code>, use an <code><a href="Language-Haskell-TH-Syntax.html#v:InfixE">InfixE</a></code> constructor for the
    outer-most section, and use <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixE">UInfixE</a></code> constructors for all
    other operators:
</li></ul><pre> InfixE
   Just (UInfixE ...a + b * c...)
   op
   Nothing
</pre><p>Sections such as <code>(a + b +)</code> and <code>((a + b) +)</code> should be rendered
    into <code><a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></code>s differently:
</p><pre> (+ a + b)   ---&gt; InfixE Nothing + (Just $ UInfixE a + b)
                    -- will result in a fixity error if (+) is left-infix
 (+ (a + b)) ---&gt; InfixE Nothing + (Just $ ParensE $ UInfixE a + b)
                    -- no fixity errors
</pre><ul><li> Quoted expressions such as
</li></ul><pre> [| a * b + c |] :: Q Exp
 [p| a : b : c |] :: Q Pat
</pre><p>will never contain <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixE">UInfixE</a></code>, <code><a href="Language-Haskell-TH-Syntax.html#v:UInfixP">UInfixP</a></code>, <code><a href="Language-Haskell-TH-Syntax.html#v:ParensE">ParensE</a></code>, or <code><a href="Language-Haskell-TH-Syntax.html#v:ParensP">ParensP</a></code>
    constructors.
</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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a>] [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] [<a href="Language-Haskell-TH-Syntax.html#t:FunDep">FunDep</a>] [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:FamFlavour">FamFlavour</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:TyVarBndr">TyVarBndr</a>] (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] [<a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a>] [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] <a href="Language-Haskell-TH-Syntax.html#t:Con">Con</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>] <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Dec">Dec</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#v:CompE">CompE</a></code> constructor represents a list comprehension, and 
 takes a [<code><a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a>) <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Dec">Dec</a>] <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Exp">Exp</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Con">Con</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:TyVarBndr">TyVarBndr</a>] <a href="Language-Haskell-TH-Syntax.html#t:Cxt">Cxt</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Type">Type</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:TyVarBndr">TyVarBndr</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Kind">Kind</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Kind">Kind</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Pred">Pred</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Match">Match</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a>] <a href="Language-Haskell-TH-Syntax.html#t:Body">Body</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Clause">Clause</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Guard">Guard</a>, <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Stmt">Stmt</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Range">Range</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Pat">Pat</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Exp">Exp</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Pat">Pat</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Callconv">Callconv</a> <a href="Language-Haskell-TH-Syntax.html#t:Safety">Safety</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Callconv">Callconv</a> <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Foreign">Foreign</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Pragma">Pragma</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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">type</span> <a name="t:StrictType" class="def">StrictType</a> = (<a href="Language-Haskell-TH-Syntax.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>)</p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:VarStrictType" class="def">VarStrictType</a> = (<a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a>, <a href="Language-Haskell-TH-Syntax.html#t:Strict">Strict</a>, <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a>)</p></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-Syntax.html#t:Name">Name</a>] [<a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:FunDep">FunDep</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:FamFlavour">FamFlavour</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#v:reify">reify</a></code> in the <code><a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.html#t:Type">Type</a> (<a href="../base-4.5.1.0/Data-Maybe.html#t:Maybe">Maybe</a> <a href="Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>) <a href="Language-Haskell-TH-Syntax.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-Syntax.html#t:Name">Name</a> <a href="Language-Haskell-TH-Syntax.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-Syntax.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-Syntax.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-Syntax.html#t:Info">Info</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a href="Language-Haskell-TH-Ppr.html#t:Ppr">Ppr</a> <a href="Language-Haskell-TH-Syntax.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">type</span> <a name="t:CharPos" class="def">CharPos</a> = (<a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>, <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a>)</p></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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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-Syntax.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:3">Internal functions
</h1><div class="top"><p class="src"><a name="v:returnQ" class="def">returnQ</a> ::  a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a</p></div><div class="top"><p class="src"><a name="v:bindQ" class="def">bindQ</a> ::  <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a -&gt; (a -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> b) -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> b</p></div><div class="top"><p class="src"><a name="v:sequenceQ" class="def">sequenceQ</a> ::  [<a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> a] -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Q">Q</a> [a]</p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:NameFlavour" class="def">NameFlavour</a>  </p><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:NameS" class="def">NameS</a></td><td class="doc"><p>An unqualified name; dynamically bound
</p></td></tr><tr><td class="src"><a name="v:NameQ" class="def">NameQ</a> <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a></td><td class="doc"><p>A qualified name; dynamically bound
</p></td></tr><tr><td class="src"><a name="v:NameU" class="def">NameU</a> Int#</td><td class="doc"><p>A unique local name
</p></td></tr><tr><td class="src"><a name="v:NameL" class="def">NameL</a> Int#</td><td class="doc"><p>Local name bound outside of the TH AST
</p></td></tr><tr><td class="src"><a name="v:NameG" class="def">NameG</a> <a href="Language-Haskell-TH-Syntax.html#t:NameSpace">NameSpace</a> <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a> <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a></td><td class="doc"><p>Global name bound outside of the TH AST:
 An original name (occurrences only, not binders)
 Need the namespace too to be sure which 
 thing we are naming
</p></td></tr></table></div><div class="subs instances"><p id="control.i:NameFlavour" class="caption collapser" onclick="toggleSection('i:NameFlavour')">Instances</p><div id="section.i:NameFlavour" 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-Syntax.html#t:NameFlavour">NameFlavour</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-Syntax.html#t:NameFlavour">NameFlavour</a></td><td class="doc"><p>Although the NameFlavour type is abstract, the Data instance is not. The reason for this
 is that currently we use Data to serialize values in annotations, and in order for that to
 work for Template Haskell names introduced via the 'x syntax we need gunfold on NameFlavour
 to work. Bleh!
</p><p>The long term solution to this is to use the binary package for annotation serialization and
 then remove this instance. However, to do _that_ we need to wait on binary to become stable, since
 boot libraries cannot be upgraded seperately from GHC itself.
</p><p>This instance cannot be derived automatically due to bug #2701
</p></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-Syntax.html#t:NameFlavour">NameFlavour</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-Syntax.html#t:NameFlavour">NameFlavour</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 constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a name="v:VarName" class="def">VarName</a></td><td class="doc"><p>Variables
</p></td></tr><tr><td class="src"><a name="v:DataName" class="def">DataName</a></td><td class="doc"><p>Data constructors 
</p></td></tr><tr><td class="src"><a name="v:TcClsName" class="def">TcClsName</a></td><td class="doc"><p>Type constructors and classes; Haskell has them
 in the same name space for now.
</p></td></tr></table></div><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-Syntax.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-Syntax.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-Syntax.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-Syntax.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:mkNameG_v" class="def">mkNameG_v</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkNameG_d" class="def">mkNameG_d</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></p></div><div class="top"><p class="src"><a name="v:mkNameG_tc" class="def">mkNameG_tc</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></p></div><div class="top"><p class="src"><span class="keyword">type</span> <a name="t:Uniq" class="def">Uniq</a> = <a href="../base-4.5.1.0/Data-Int.html#t:Int">Int</a></p></div><div class="top"><p class="src"><a name="v:mkNameL" class="def">mkNameL</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Uniq">Uniq</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></p><div class="doc"><p>Only used internally
</p></div></div><div class="top"><p class="src"><a name="v:mkNameU" class="def">mkNameU</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Uniq">Uniq</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:Name">Name</a></p><div class="doc"><p>Only used internally
</p></div></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-Syntax.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-Syntax.html#t:Name">Name</a></td><td class="doc"><p>Data constructor
</p></td></tr></table></div></div><div class="top"><p class="src"><a name="v:unboxedTupleTypeName" class="def">unboxedTupleTypeName</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-Syntax.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:unboxedTupleDataName" class="def">unboxedTupleDataName</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-Syntax.html#t:Name">Name</a></td><td class="doc"><p>Data constructor
</p></td></tr></table></div></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:OccName" class="def">OccName</a>  </p><div class="subs instances"><p id="control.i:OccName" class="caption collapser" onclick="toggleSection('i:OccName')">Instances</p><div id="section.i:OccName" 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-Syntax.html#t:OccName">OccName</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-Syntax.html#t:OccName">OccName</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-Syntax.html#t:OccName">OccName</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-Syntax.html#t:OccName">OccName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkOccName" class="def">mkOccName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a></p></div><div class="top"><p class="src"><a name="v:occString" class="def">occString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:OccName">OccName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:ModName" class="def">ModName</a>  </p><div class="subs instances"><p id="control.i:ModName" class="caption collapser" onclick="toggleSection('i:ModName')">Instances</p><div id="section.i:ModName" 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-Syntax.html#t:ModName">ModName</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-Syntax.html#t:ModName">ModName</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-Syntax.html#t:ModName">ModName</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-Syntax.html#t:ModName">ModName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkModName" class="def">mkModName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a></p></div><div class="top"><p class="src"><a name="v:modString" class="def">modString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:ModName">ModName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</a></p></div><div class="top"><p class="src"><span class="keyword">data</span>  <a name="t:PkgName" class="def">PkgName</a>  </p><div class="subs instances"><p id="control.i:PkgName" class="caption collapser" onclick="toggleSection('i:PkgName')">Instances</p><div id="section.i:PkgName" 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-Syntax.html#t:PkgName">PkgName</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-Syntax.html#t:PkgName">PkgName</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-Syntax.html#t:PkgName">PkgName</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-Syntax.html#t:PkgName">PkgName</a></td><td class="doc empty">&nbsp;</td></tr></table></div></div></div><div class="top"><p class="src"><a name="v:mkPkgName" class="def">mkPkgName</a> :: <a href="../base-4.5.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a></p></div><div class="top"><p class="src"><a name="v:pkgString" class="def">pkgString</a> :: <a href="Language-Haskell-TH-Syntax.html#t:PkgName">PkgName</a> -&gt; <a href="../base-4.5.1.0/Data-String.html#t:String">String</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>