This file is indexed.

/usr/share/doc/libghc-derive-doc/html/Language-Haskell-TH-Helper.html is in libghc-derive-doc 2.6.3-1build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!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.Helper</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Language-Haskell-TH-Helper.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Language-Haskell-TH-Helper.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">derive-2.6.3: A program and library to derive instances for data types</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>None</td></tr><tr><th>Language</th><td>Haskell2010</td></tr></table><p class="caption">Language.Haskell.TH.Helper</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">Special folds for the guessing</a></li><li><a href="#g:2">Syntax elements</a></li><li><a href="#g:3">Pattern vs Value abstraction</a></li><li><a href="#g:4">Constructor abstraction</a></li><li><a href="#g:5">Lift a constructor over a fixed number of arguments.</a></li><li><a href="#g:6">Pre-lifted versions of common operations</a></li></ul></div><div id="description"><p class="caption">Description</p><div class="doc"><p>These small short-named functions are intended to make the
   construction of abstranct syntax trees less tedious.</p></div></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><a href="#v:applyWith">applyWith</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:foldl1With">foldl1With</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:foldr1With">foldr1With</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:sclause">sclause</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a></li><li class="src short"><a href="#v:defclause">defclause</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a></li><li class="src short"><a href="#v:sval">sval</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><a href="#v:case-39-">case'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [(<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>)] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-45--62-:">(-&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:instance_none">instance_none</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><a href="#v:instance_default">instance_default</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><a href="#v:instance_context">instance_context</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><a href="#v:simple_instance">simple_instance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:generic_instance">generic_instance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>]</li><li class="src short"><a href="#v:sigN">sigN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><a href="#v:funN">funN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a></li><li class="src short"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> nm =&gt; <a href="#t:NameLike">NameLike</a> nm <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><span class="keyword">class</span> <a href="#t:Valcon">Valcon</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:app">app</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><span class="keyword">class</span> <a href="#t:LitC">LitC</a> a <span class="keyword">where</span><ul class="subs"></ul></li><li class="src short"><a href="#v:dataVars">dataVars</a> :: <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>]</li><li class="src short"><a href="#v:vars">vars</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; [a]</li><li class="src short"><a href="#v:vrn">vrn</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; a</li><li class="src short"><a href="#v:ctv">ctv</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; [a]</li><li class="src short"><a href="#v:ctp">ctp</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; a</li><li class="src short"><a href="#v:ctc">ctc</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; a</li><li class="src short"><a href="#v:l0">l0</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a</li><li class="src short"><a href="#v:l1">l1</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a -&gt; a</li><li class="src short"><a href="#v:l2">l2</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a -&gt; a -&gt; a</li><li class="src short"><a href="#v:true">true</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a</li><li class="src short"><a href="#v:false">false</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a</li><li class="src short"><a href="#v:nil">nil</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a</li><li class="src short"><a href="#v:hNil-39-">hNil'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:hZero-39-">hZero'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:unit">unit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:id-39-">id'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:cons">cons</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a -&gt; a -&gt; a</li><li class="src short"><a href="#v:box">box</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a -&gt; a</li><li class="src short"><a href="#v:return-39-">return'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:const-39-">const'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:hSucc-39-">hSucc'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:-61--61-:">(==:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-38--38-:">(&amp;&amp;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-43--43-:">(++:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-62--62--61-:">(&gt;&gt;=:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-62--62-:">(&gt;&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:.:">(.:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:ap-39-">ap'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-62-:">(&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:hCons-39-">hCons'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a></li><li class="src short"><a href="#v:-38--38-::">(&amp;&amp;::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-43--43-::">(++::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:-62--62-::">(&gt;&gt;::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:sequence__">sequence__</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:.::">(.::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li><li class="src short"><a href="#v:liftmk">liftmk</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></li></ul></div><div id="interface"><h1 id="g:1">Special folds for the guessing</h1><div class="top"><p class="src"><a id="v:applyWith" class="def">applyWith</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#applyWith" class="link">Source</a> <a href="#v:applyWith" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foldl1With" class="def">foldl1With</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#foldl1With" class="link">Source</a> <a href="#v:foldl1With" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:foldr1With" class="def">foldr1With</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#foldr1With" class="link">Source</a> <a href="#v:foldr1With" class="selflink">#</a></p></div><h1 id="g:2">Syntax elements</h1><div class="top"><p class="src"><a id="v:sclause" class="def">sclause</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a> <a href="src/Language-Haskell-TH-Helper.html#sclause" class="link">Source</a> <a href="#v:sclause" class="selflink">#</a></p><div class="doc"><p>A simple clause, without where or guards.</p></div></div><div class="top"><p class="src"><a id="v:defclause" class="def">defclause</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a> <a href="src/Language-Haskell-TH-Helper.html#defclause" class="link">Source</a> <a href="#v:defclause" class="selflink">#</a></p><div class="doc"><p>A default clause with N arguments.</p></div></div><div class="top"><p class="src"><a id="v:sval" class="def">sval</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#sval" class="link">Source</a> <a href="#v:sval" class="selflink">#</a></p><div class="doc"><p>A simple Val clause</p></div></div><div class="top"><p class="src"><a id="v:case-39-" class="def">case'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [(<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>, <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>)] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#case%27" class="link">Source</a> <a href="#v:case-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-45--62-:" class="def">(-&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#-%3E%3A" class="link">Source</a> <a href="#v:-45--62-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:instance_none" class="def">instance_none</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#instance_none" class="link">Source</a> <a href="#v:instance_none" class="selflink">#</a></p><div class="doc"><p>We provide 3 standard instance constructors
   instance_default requires C for each free type variable
   instance_none requires no context
   instance_context requires a given context</p></div></div><div class="top"><p class="src"><a id="v:instance_default" class="def">instance_default</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#instance_default" class="link">Source</a> <a href="#v:instance_default" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:instance_context" class="def">instance_context</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#instance_context" class="link">Source</a> <a href="#v:instance_context" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:simple_instance" class="def">simple_instance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] <a href="src/Language-Haskell-TH-Helper.html#simple_instance" class="link">Source</a> <a href="#v:simple_instance" class="selflink">#</a></p><div class="doc"><p>Build an instance of a class for a data type, using the heuristic
 that the type is itself required on all type arguments.</p></div></div><div class="top"><p class="src"><a id="v:generic_instance" class="def">generic_instance</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a>] <a href="src/Language-Haskell-TH-Helper.html#generic_instance" class="link">Source</a> <a href="#v:generic_instance" class="selflink">#</a></p><div class="doc"><p>Build an instance of a class for a data type, using the class at the given types</p></div></div><div class="top"><p class="src"><a id="v:sigN" class="def">sigN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#sigN" class="link">Source</a> <a href="#v:sigN" class="selflink">#</a></p><div class="doc"><p>Build a type signature declaration with a string name</p></div></div><div class="top"><p class="src"><a id="v:funN" class="def">funN</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Clause">Clause</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Dec">Dec</a> <a href="src/Language-Haskell-TH-Helper.html#funN" class="link">Source</a> <a href="#v:funN" class="selflink">#</a></p><div class="doc"><p>Build a fundecl with a string name</p></div></div><h1 id="g:3">Pattern vs Value abstraction</h1><div class="top"><p class="src"><span class="keyword">class</span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Eq.html#t:Eq">Eq</a> nm =&gt; <a id="t:NameLike" class="def">NameLike</a> nm <span class="keyword">where</span> <a href="src/Language-Haskell-TH-Helper.html#NameLike" class="link">Source</a> <a href="#t:NameLike" class="selflink">#</a></p><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Language-Haskell-TH-Helper.html#v:toName">toName</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:toName" class="def">toName</a> :: nm -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="src/Language-Haskell-TH-Helper.html#toName" class="link">Source</a> <a href="#v:toName" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:NameLike" class="caption collapser" onclick="toggleSection('i:NameLike')">Instances</p><div id="section.i:NameLike" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:NameLike:NameLike:1" class="instance expander" onclick="toggleSection('i:ic:NameLike:NameLike:1')"></span> <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-91" class="link">Source</a> <a href="#t:NameLike" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:NameLike:NameLike:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toName">toName</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="src/Language-Haskell-TH-Helper.html#toName" class="link">Source</a> <a href="#v:toName" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:NameLike:NameLike:2" class="instance expander" onclick="toggleSection('i:ic:NameLike:NameLike:2')"></span> <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-92" class="link">Source</a> <a href="#t:NameLike" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:NameLike:NameLike:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:toName">toName</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Name">Name</a> <a href="src/Language-Haskell-TH-Helper.html#toName" class="link">Source</a> <a href="#v:toName" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:Valcon" class="def">Valcon</a> a <span class="keyword">where</span> <a href="src/Language-Haskell-TH-Helper.html#Valcon" class="link">Source</a> <a href="#t:Valcon" class="selflink">#</a></p><div class="doc"><p>The class used to overload lifting operations.  To reduce code
 duplication, we overload the wrapped constructors (and everything
 else, but that's irrelevant) to work in patterns, expressions, and
 types.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Language-Haskell-TH-Helper.html#v:lK">lK</a>, <a href="Language-Haskell-TH-Helper.html#v:vr">vr</a>, <a href="Language-Haskell-TH-Helper.html#v:raw_lit">raw_lit</a>, <a href="Language-Haskell-TH-Helper.html#v:tup">tup</a>, <a href="Language-Haskell-TH-Helper.html#v:lst">lst</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:lK" class="def">lK</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; [a] -&gt; a <a href="src/Language-Haskell-TH-Helper.html#lK" class="link">Source</a> <a href="#v:lK" class="selflink">#</a></p><div class="doc"><p>Build an application node, with a name for a head and a
 provided list of arguments.</p></div><p class="src"><a id="v:vr" class="def">vr</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; a <a href="src/Language-Haskell-TH-Helper.html#vr" class="link">Source</a> <a href="#v:vr" class="selflink">#</a></p><div class="doc"><p>Reference a named variable.</p></div><p class="src"><a id="v:raw_lit" class="def">raw_lit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Lit">Lit</a> -&gt; a <a href="src/Language-Haskell-TH-Helper.html#raw_lit" class="link">Source</a> <a href="#v:raw_lit" class="selflink">#</a></p><div class="doc"><p>Lift a TH <code><a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Lit">Lit</a></code></p></div><p class="src"><a id="v:tup" class="def">tup</a> :: [a] -&gt; a <a href="src/Language-Haskell-TH-Helper.html#tup" class="link">Source</a> <a href="#v:tup" class="selflink">#</a></p><div class="doc"><p>Tupling</p></div><p class="src"><a id="v:lst" class="def">lst</a> :: [a] -&gt; a <a href="src/Language-Haskell-TH-Helper.html#lst" class="link">Source</a> <a href="#v:lst" class="selflink">#</a></p><div class="doc"><p>Listing</p></div></div><div class="subs instances"><p id="control.i:Valcon" class="caption collapser" onclick="toggleSection('i:Valcon')">Instances</p><div id="section.i:Valcon" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valcon:Valcon:1" class="instance expander" onclick="toggleSection('i:ic:Valcon:Valcon:1')"></span> <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-110" class="link">Source</a> <a href="#t:Valcon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Valcon:Valcon:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lK">lK</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#lK" class="link">Source</a> <a href="#v:lK" class="selflink">#</a></p><p class="src"><a href="#v:vr">vr</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#vr" class="link">Source</a> <a href="#v:vr" class="selflink">#</a></p><p class="src"><a href="#v:raw_lit">raw_lit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Lit">Lit</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#raw_lit" class="link">Source</a> <a href="#v:raw_lit" class="selflink">#</a></p><p class="src"><a href="#v:tup">tup</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#tup" class="link">Source</a> <a href="#v:tup" class="selflink">#</a></p><p class="src"><a href="#v:lst">lst</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#lst" class="link">Source</a> <a href="#v:lst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valcon:Valcon:2" class="instance expander" onclick="toggleSection('i:ic:Valcon:Valcon:2')"></span> <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-123" class="link">Source</a> <a href="#t:Valcon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Valcon:Valcon:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lK">lK</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="src/Language-Haskell-TH-Helper.html#lK" class="link">Source</a> <a href="#v:lK" class="selflink">#</a></p><p class="src"><a href="#v:vr">vr</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="src/Language-Haskell-TH-Helper.html#vr" class="link">Source</a> <a href="#v:vr" class="selflink">#</a></p><p class="src"><a href="#v:raw_lit">raw_lit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Lit">Lit</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="src/Language-Haskell-TH-Helper.html#raw_lit" class="link">Source</a> <a href="#v:raw_lit" class="selflink">#</a></p><p class="src"><a href="#v:tup">tup</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="src/Language-Haskell-TH-Helper.html#tup" class="link">Source</a> <a href="#v:tup" class="selflink">#</a></p><p class="src"><a href="#v:lst">lst</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Pat">Pat</a> <a href="src/Language-Haskell-TH-Helper.html#lst" class="link">Source</a> <a href="#v:lst" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:Valcon:Valcon:3" class="instance expander" onclick="toggleSection('i:ic:Valcon:Valcon:3')"></span> <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-129" class="link">Source</a> <a href="#t:Valcon" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:Valcon:Valcon:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lK">lK</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#lK" class="link">Source</a> <a href="#v:lK" class="selflink">#</a></p><p class="src"><a href="#v:vr">vr</a> :: <a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm =&gt; nm -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#vr" class="link">Source</a> <a href="#v:vr" class="selflink">#</a></p><p class="src"><a href="#v:raw_lit">raw_lit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Lit">Lit</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#raw_lit" class="link">Source</a> <a href="#v:raw_lit" class="selflink">#</a></p><p class="src"><a href="#v:tup">tup</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#tup" class="link">Source</a> <a href="#v:tup" class="selflink">#</a></p><p class="src"><a href="#v:lst">lst</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#lst" class="link">Source</a> <a href="#v:lst" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:app" class="def">app</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#app" class="link">Source</a> <a href="#v:app" class="selflink">#</a></p><div class="doc"><p>Build an application node without a given head</p></div></div><div class="top"><p class="src"><span class="keyword">class</span> <a id="t:LitC" class="def">LitC</a> a <span class="keyword">where</span> <a href="src/Language-Haskell-TH-Helper.html#LitC" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></p><div class="doc"><p>This class is used to overload literal construction based on the
 type of the literal.</p></div><div class="subs minimal"><p class="caption">Minimal complete definition</p><p class="src"><a href="Language-Haskell-TH-Helper.html#v:lit">lit</a></p></div><div class="subs methods"><p class="caption">Methods</p><p class="src"><a id="v:lit" class="def">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; a -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div><div class="subs instances"><p id="control.i:LitC" class="caption collapser" onclick="toggleSection('i:LitC')">Instances</p><div id="section.i:LitC" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:1" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:1')"></span> <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-153" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:2" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:2')"></span> <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Integer">Integer</a></span> <a href="src/Language-Haskell-TH-Helper.html#line-151" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Prelude.html#t:Integer">Integer</a> -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:3" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:3')"></span> <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> ()</span> <a href="src/Language-Haskell-TH-Helper.html#line-161" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; () -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:4" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:4')"></span> <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> a =&gt; <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> [a]</span> <a href="src/Language-Haskell-TH-Helper.html#line-155" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; [a] -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:5" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:5')"></span> (<a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> a, <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> b) =&gt; <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> (a, b)</span> <a href="src/Language-Haskell-TH-Helper.html#line-157" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:5" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; (a, b) -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:ic:LitC:LitC:6" class="instance expander" onclick="toggleSection('i:ic:LitC:LitC:6')"></span> (<a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> a, <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> b, <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> c) =&gt; <a href="Language-Haskell-TH-Helper.html#t:LitC">LitC</a> (a, b, c)</span> <a href="src/Language-Haskell-TH-Helper.html#line-159" class="link">Source</a> <a href="#t:LitC" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:ic:LitC:LitC:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:lit">lit</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> p =&gt; (a, b, c) -&gt; p <a href="src/Language-Haskell-TH-Helper.html#lit" class="link">Source</a> <a href="#v:lit" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><h1 id="g:4">Constructor abstraction</h1><div class="top"><p class="src"><a id="v:dataVars" class="def">dataVars</a> :: <a href="Language-Haskell-TH-Data.html#t:DataDef">DataDef</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a>] <a href="src/Language-Haskell-TH-Helper.html#dataVars" class="link">Source</a> <a href="#v:dataVars" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:vars" class="def">vars</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; [a] <a href="src/Language-Haskell-TH-Helper.html#vars" class="link">Source</a> <a href="#v:vars" class="selflink">#</a></p><div class="doc"><p>Common pattern: list of a familiy of variables</p></div></div><div class="top"><p class="src"><a id="v:vrn" class="def">vrn</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Int.html#t:Int">Int</a> -&gt; a <a href="src/Language-Haskell-TH-Helper.html#vrn" class="link">Source</a> <a href="#v:vrn" class="selflink">#</a></p><div class="doc"><p>Variable based on a letter + number</p></div></div><div class="top"><p class="src"><a id="v:ctv" class="def">ctv</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; [a] <a href="src/Language-Haskell-TH-Helper.html#ctv" class="link">Source</a> <a href="#v:ctv" class="selflink">#</a></p><div class="doc"><p>Make a list of variables, one for each argument to a constructor</p></div></div><div class="top"><p class="src"><a id="v:ctp" class="def">ctp</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; a <a href="src/Language-Haskell-TH-Helper.html#ctp" class="link">Source</a> <a href="#v:ctp" class="selflink">#</a></p><div class="doc"><p>Make a simple pattern to bind a constructor</p></div></div><div class="top"><p class="src"><a id="v:ctc" class="def">ctc</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; <a href="Language-Haskell-TH-Data.html#t:CtorDef">CtorDef</a> -&gt; a <a href="src/Language-Haskell-TH-Helper.html#ctc" class="link">Source</a> <a href="#v:ctc" class="selflink">#</a></p><div class="doc"><p>Reference the constructor itself</p></div></div><h1 id="g:5">Lift a constructor over a fixed number of arguments.</h1><div class="top"><p class="src"><a id="v:l0" class="def">l0</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a <a href="src/Language-Haskell-TH-Helper.html#l0" class="link">Source</a> <a href="#v:l0" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:l1" class="def">l1</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a -&gt; a <a href="src/Language-Haskell-TH-Helper.html#l1" class="link">Source</a> <a href="#v:l1" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:l2" class="def">l2</a> :: (<a href="Language-Haskell-TH-Helper.html#t:NameLike">NameLike</a> nm, <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a) =&gt; nm -&gt; a -&gt; a -&gt; a <a href="src/Language-Haskell-TH-Helper.html#l2" class="link">Source</a> <a href="#v:l2" class="selflink">#</a></p></div><h1 id="g:6">Pre-lifted versions of common operations</h1><div class="top"><p class="src"><a id="v:true" class="def">true</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a <a href="src/Language-Haskell-TH-Helper.html#true" class="link">Source</a> <a href="#v:true" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:false" class="def">false</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a <a href="src/Language-Haskell-TH-Helper.html#false" class="link">Source</a> <a href="#v:false" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:nil" class="def">nil</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a <a href="src/Language-Haskell-TH-Helper.html#nil" class="link">Source</a> <a href="#v:nil" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hNil-39-" class="def">hNil'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#hNil%27" class="link">Source</a> <a href="#v:hNil-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hZero-39-" class="def">hZero'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#hZero%27" class="link">Source</a> <a href="#v:hZero-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:unit" class="def">unit</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#unit" class="link">Source</a> <a href="#v:unit" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:id-39-" class="def">id'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#id%27" class="link">Source</a> <a href="#v:id-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:cons" class="def">cons</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a -&gt; a -&gt; a <a href="src/Language-Haskell-TH-Helper.html#cons" class="link">Source</a> <a href="#v:cons" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:box" class="def">box</a> :: <a href="Language-Haskell-TH-Helper.html#t:Valcon">Valcon</a> a =&gt; a -&gt; a <a href="src/Language-Haskell-TH-Helper.html#box" class="link">Source</a> <a href="#v:box" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:return-39-" class="def">return'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#return%27" class="link">Source</a> <a href="#v:return-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:const-39-" class="def">const'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#const%27" class="link">Source</a> <a href="#v:const-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hSucc-39-" class="def">hSucc'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#hSucc%27" class="link">Source</a> <a href="#v:hSucc-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-61--61-:" class="def">(==:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%3D%3D%3A" class="link">Source</a> <a href="#v:-61--61-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-38--38-:" class="def">(&amp;&amp;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%26%26%3A" class="link">Source</a> <a href="#v:-38--38-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-43--43-:" class="def">(++:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%2B%2B%3A" class="link">Source</a> <a href="#v:-43--43-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-62--62--61-:" class="def">(&gt;&gt;=:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%3E%3E%3D%3A" class="link">Source</a> <a href="#v:-62--62--61-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-62--62-:" class="def">(&gt;&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%3E%3E%3A" class="link">Source</a> <a href="#v:-62--62-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:.:" class="def">(.:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#.%3A" class="link">Source</a> <a href="#v:.:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:ap-39-" class="def">ap'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#ap%27" class="link">Source</a> <a href="#v:ap-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-62-:" class="def">(&gt;:)</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%3E%3A" class="link">Source</a> <a href="#v:-62-:" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:hCons-39-" class="def">hCons'</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Type">Type</a> <a href="src/Language-Haskell-TH-Helper.html#hCons%27" class="link">Source</a> <a href="#v:hCons-39-" class="selflink">#</a></p></div><div class="top"><p class="src"><a id="v:-38--38-::" class="def">(&amp;&amp;::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%26%26%3A%3A" class="link">Source</a> <a href="#v:-38--38-::" class="selflink">#</a></p><div class="doc"><p>Build a chain of expressions, with an appropriate terminal
   sequence__ does not require a unit at the end (all others are optimised automatically)</p></div></div><div class="top"><p class="src"><a id="v:-43--43-::" class="def">(++::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%2B%2B%3A%3A" class="link">Source</a> <a href="#v:-43--43-::" class="selflink">#</a></p><div class="doc"><p>Build a chain of expressions, with an appropriate terminal
   sequence__ does not require a unit at the end (all others are optimised automatically)</p></div></div><div class="top"><p class="src"><a id="v:-62--62-::" class="def">(&gt;&gt;::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#%3E%3E%3A%3A" class="link">Source</a> <a href="#v:-62--62-::" class="selflink">#</a></p><div class="doc"><p>Build a chain of expressions, with an appropriate terminal
   sequence__ does not require a unit at the end (all others are optimised automatically)</p></div></div><div class="top"><p class="src"><a id="v:sequence__" class="def">sequence__</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#sequence__" class="link">Source</a> <a href="#v:sequence__" class="selflink">#</a></p><div class="doc"><p>Build a chain of expressions, with an appropriate terminal
   sequence__ does not require a unit at the end (all others are optimised automatically)</p></div></div><div class="top"><p class="src"><a id="v:.::" class="def">(.::)</a> :: [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#.%3A%3A" class="link">Source</a> <a href="#v:.::" class="selflink">#</a></p><div class="doc"><p>Build a chain of expressions, with an appropriate terminal
   sequence__ does not require a unit at the end (all others are optimised automatically)</p></div></div><div class="top"><p class="src"><a id="v:liftmk" class="def">liftmk</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> -&gt; [<a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a>] -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/template-haskell-2.11.1.0/Language-Haskell-TH-Syntax.html#t:Exp">Exp</a> <a href="src/Language-Haskell-TH-Helper.html#liftmk" class="link">Source</a> <a href="#v:liftmk" class="selflink">#</a></p><div class="doc"><p>K-way liftM</p></div></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>