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