packages feed

haddock-2.28.0: hypsrc-test/ref/src/TemplateHaskellQuasiquotes.html

<html xmlns="http://www.w3.org/1999/xhtml"
><head
  ><link rel="stylesheet" type="text/css" href="style.css"
     /><script type="text/javascript" src="highlight.js"
    ></script
    ></head
  ><body
  ><pre
    ><span class="hs-pragma"
      >{-# LANGUAGE Haskell2010 #-}</span
      ><span
      >
</span
      ><span id="line-2"
      ></span
      ><span class="hs-pragma"
      >{-# LANGUAGE TemplateHaskell #-}</span
      ><span
      >
</span
      ><span id="line-3"
      ></span
      ><span
      >
</span
      ><span id="line-4"
      ></span
      ><span class="hs-keyword"
      >module</span
      ><span
      > </span
      ><span class="hs-identifier"
      >TemplateHaskellQuasiquotes</span
      ><span
      > </span
      ><span class="hs-keyword"
      >where</span
      ><span
      >
</span
      ><span id="line-5"
      ></span
      ><span
      >
</span
      ><span id="line-6"
      ></span
      ><span class="hs-keyword"
      >import</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier"
	>Language.Haskell.TH</span
	></span
      ><span
      >
</span
      ><span id="line-7"
      ></span
      ><span
      >
</span
      ><span id="line-8"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#aDecl"
	><span class="hs-identifier hs-type"
	  >aDecl</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>DecsQ</span
	></span
      ><span
      >
</span
      ><span id="line-9"
      ></span
      ><span id="aDecl"
      ><span class="annot"
	><span class="annottext"
	  >aDecl :: DecsQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#aDecl"
	  ><span class="hs-identifier hs-var hs-var"
	    >aDecl</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[d|</span
      ><span
      >
</span
      ><span id="line-10"
      ></span
      ><span
      >    </span
      ><span class="annot"
      ><a href="#"
	><span class="hs-identifier hs-type"
	  >bar</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="hs-special"
      >$</span
      ><span class="annot"
      ><span class="annottext"
	>TypeQ
</span
	><a href="TemplateHaskellQuasiquotes.html#aType"
	><span class="hs-identifier hs-var"
	  >aType</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >-&gt;</span
      ><span
      > </span
      ><span class="hs-special"
      >[</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Int</span
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>String</span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >]</span
      ><span
      >
</span
      ><span id="line-11"
      ></span
      ><span
      >    </span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var hs-var"
	    >bar</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-special"
      >$</span
      ><span class="annot"
      ><span class="annottext"
	>PatQ
</span
	><a href="TemplateHaskellQuasiquotes.html#aPattern"
	><span class="hs-identifier hs-var"
	  >aPattern</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >$</span
      ><span class="annot"
      ><span class="annottext"
	>ExpQ
</span
	><a href="TemplateHaskellQuasiquotes.html#anExpression"
	><span class="hs-identifier hs-var"
	  >anExpression</span
	  ></a
	></span
      ><span
      >
</span
      ><span id="line-12"
      ></span
      ><span
      >  </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-13"
      ></span
      ><span
      >
</span
      ><span id="line-14"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#aPattern"
	><span class="hs-identifier hs-type"
	  >aPattern</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>PatQ</span
	></span
      ><span
      >
</span
      ><span id="line-15"
      ></span
      ><span id="aPattern"
      ><span class="annot"
	><span class="annottext"
	  >aPattern :: PatQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#aPattern"
	  ><span class="hs-identifier hs-var hs-var"
	    >aPattern</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[p|</span
      ><span
      >
</span
      ><span id="line-16"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >[</span
      ><span
      > </span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >aCrazyLongVariableName</span
	    ></a
	  ></span
	></span
      ><span
      >
</span
      ><span id="line-17"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >_unused</span
	    ></a
	  ></span
	></span
      ><span
      >
</span
      ><span id="line-18"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >y</span
	    ></a
	  ></span
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >z</span
	    ></a
	  ></span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      >
</span
      ><span id="line-19"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span
      > </span
      ><span class="hs-special"
      >$</span
      ><span class="annot"
      ><span class="annottext"
	>PatQ
</span
	><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
	><span class="hs-identifier hs-var"
	  >aNumberPattern</span
	  ></a
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-string"
	>&quot;hello&quot;</span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      >
</span
      ><span id="line-20"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >]</span
      ><span
      >
</span
      ><span id="line-21"
      ></span
      ><span
      >  </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-22"
      ></span
      ><span
      >
</span
      ><span id="line-23"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
	><span class="hs-identifier hs-type"
	  >aNumberPattern</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>PatQ</span
	></span
      ><span
      >
</span
      ><span id="line-24"
      ></span
      ><span id="aNumberPattern"
      ><span class="annot"
	><span class="annottext"
	  >aNumberPattern :: PatQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#aNumberPattern"
	  ><span class="hs-identifier hs-var hs-var"
	    >aNumberPattern</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[p|</span
      ><span
      >
</span
      ><span id="line-25"
      ></span
      ><span
      >    </span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >w</span
	    ></a
	  ></span
	></span
      ><span class="hs-glyph"
      >@</span
      ><span id=""
      ><span class="annot"
	><a href="#"
	  ><span class="hs-identifier hs-var"
	    >v</span
	    ></a
	  ></span
	></span
      ><span class="hs-glyph"
      >@</span
      ><span class="annot"
      ><span class="hs-number"
	>4.5</span
	></span
      ><span
      >
</span
      ><span id="line-26"
      ></span
      ><span
      >  </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-27"
      ></span
      ><span
      >
</span
      ><span id="line-28"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#anExpression"
	><span class="hs-identifier hs-type"
	  >anExpression</span
	  ></a
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#anExpression2"
	><span class="hs-identifier hs-type"
	  >anExpression2</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>ExpQ</span
	></span
      ><span
      >
</span
      ><span id="line-29"
      ></span
      ><span id="anExpression"
      ><span class="annot"
	><span class="annottext"
	  >anExpression :: ExpQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#anExpression"
	  ><span class="hs-identifier hs-var hs-var"
	    >anExpression</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[e|</span
      ><span
      >
</span
      ><span id="line-30"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >[</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="annot"
      ><span class="hs-number"
	>1</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-operator hs-type"
	>+</span
	></span
      ><span
      > </span
      ><span class="hs-special"
      >$</span
      ><span class="annot"
      ><span class="annottext"
	>ExpQ
</span
	><a href="TemplateHaskellQuasiquotes.html#anExpression2"
	><span class="hs-identifier hs-var"
	  >anExpression2</span
	  ></a
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-string"
	>&quot;world&quot;</span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >]</span
      ><span
      >
</span
      ><span id="line-31"
      ></span
      ><span
      >  </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-32"
      ></span
      ><span id="anExpression2"
      ><span class="annot"
	><span class="annottext"
	  >anExpression2 :: ExpQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#anExpression2"
	  ><span class="hs-identifier hs-var hs-var"
	    >anExpression2</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[|</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="annot"
      ><span class="hs-number"
	>1</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-operator hs-type"
	>+</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>round</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>pi</span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-33"
      ></span
      ><span
      >
</span
      ><span id="line-34"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#aType"
	><span class="hs-identifier hs-type"
	  >aType</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>TypeQ</span
	></span
      ><span
      >
</span
      ><span id="line-35"
      ></span
      ><span id="aType"
      ><span class="annot"
	><span class="annottext"
	  >aType :: TypeQ
</span
	  ><a href="TemplateHaskellQuasiquotes.html#aType"
	  ><span class="hs-identifier hs-var hs-var"
	    >aType</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[t|</span
      ><span
      >
</span
      ><span id="line-36"
      ></span
      ><span
      >    </span
      ><span class="hs-special"
      >[</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Double</span
	></span
      ><span class="hs-special"
      >,</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>String</span
	></span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >]</span
      ><span
      >
</span
      ><span id="line-37"
      ></span
      ><span
      >  </span
      ><span class="hs-special"
      >|]</span
      ><span
      >
</span
      ><span id="line-38"
      ></span
      ><span
      >
</span
      ><span id="line-39"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
	><span class="hs-identifier hs-type"
	  >typedExpr1</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Code</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Q</span
	></span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="hs-special"
      >)</span
      ><span
      >
</span
      ><span id="line-40"
      ></span
      ><span id="typedExpr1"
      ><span class="annot"
	><span class="annottext"
	  >typedExpr1 :: Code Q ()
</span
	  ><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
	  ><span class="hs-identifier hs-var hs-var"
	    >typedExpr1</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[||</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >||]</span
      ><span
      >
</span
      ><span id="line-41"
      ></span
      ><span
      >
</span
      ><span id="line-42"
      ></span
      ><span class="annot"
      ><a href="TemplateHaskellQuasiquotes.html#typedExpr"
	><span class="hs-identifier hs-type"
	  >typedExpr</span
	  ></a
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >::</span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Code</span
	></span
      ><span
      > </span
      ><span class="annot"
      ><span class="hs-identifier hs-type"
	>Q</span
	></span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="hs-special"
      >)</span
      ><span
      >
</span
      ><span id="line-43"
      ></span
      ><span id="typedExpr"
      ><span class="annot"
	><span class="annottext"
	  >typedExpr :: Code Q ()
</span
	  ><a href="TemplateHaskellQuasiquotes.html#typedExpr"
	  ><span class="hs-identifier hs-var hs-var"
	    >typedExpr</span
	    ></a
	  ></span
	></span
      ><span
      > </span
      ><span class="hs-glyph"
      >=</span
      ><span
      > </span
      ><span class="hs-special"
      >[||</span
      ><span
      > </span
      ><span class="annot"
      ><span class="annottext"
	>a -&gt; b -&gt; a
forall a b. a -&gt; b -&gt; a
</span
	><span class="hs-identifier hs-var"
	>const</span
	></span
      ><span
      > </span
      ><span class="hs-special"
      >$$</span
      ><span class="hs-special"
      >(</span
      ><span class="annot"
      ><span class="annottext"
	>Code Q ()
</span
	><a href="TemplateHaskellQuasiquotes.html#typedExpr1"
	><span class="hs-identifier hs-var"
	  >typedExpr1</span
	  ></a
	></span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >(</span
      ><span class="hs-special"
      >)</span
      ><span
      > </span
      ><span class="hs-special"
      >||]</span
      ><span
      >
</span
      ><span id="line-44"
      ></span
      ><span
      >
</span
      ><span id="line-45"
      ></span
      ><span
      >
</span
      ><span id="line-46"
      ></span
      ><span
      >
</span
      ><span id="line-47"
      ></span
      ></pre
    ></body
  ></html
>