<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 TemplateHaskell #-}</span ><span > </span ><span id="line-2" ></span ><span > </span ><span id="line-3" ></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-4" ></span ><span > </span ><span id="line-5" ></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-6" ></span ><span > </span ><span id="line-7" ></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-8" ></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-9" ></span ><span > </span ><span class="hs-identifier" >bar</span ><span > </span ><span class="hs-glyph" >::</span ><span > </span ><span class="hs-special" >$</span ><span class="hs-identifier" >aType</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-identifier" >Int</span ><span class="hs-special" >,</span ><span > </span ><span class="hs-identifier" >String</span ><span class="hs-special" >)</span ><span > </span ><span class="hs-special" >]</span ><span > </span ><span id="line-10" ></span ><span > </span ><span class="hs-identifier" >bar</span ><span > </span ><span class="hs-special" >$</span ><span class="hs-identifier" >aPattern</span ><span > </span ><span class="hs-glyph" >=</span ><span > </span ><span class="hs-special" >$</span ><span class="hs-identifier" >anExpression</span ><span > </span ><span id="line-11" ></span ><span > </span ><span class="hs-special" >|]</span ><span > </span ><span id="line-12" ></span ><span > </span ><span id="line-13" ></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-14" ></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-15" ></span ><span > </span ><span class="hs-special" >[</span ><span > </span ><span class="hs-identifier" >aCrazyLongVariableName</span ><span > </span ><span id="line-16" ></span ><span > </span ><span class="hs-special" >,</span ><span > </span ><span class="hs-identifier" >_unused</span ><span > </span ><span id="line-17" ></span ><span > </span ><span class="hs-special" >,</span ><span > </span ><span class="hs-special" >(</span ><span class="hs-identifier" >y</span ><span class="hs-special" >,</span ><span > </span ><span class="hs-identifier" >z</span ><span class="hs-special" >)</span ><span > </span ><span id="line-18" ></span ><span > </span ><span class="hs-special" >,</span ><span > </span ><span class="hs-special" >(</span ><span > </span ><span class="hs-special" >$</span ><span class="hs-identifier" >aNumberPattern</span ><span class="hs-special" >,</span ><span > </span ><span class="hs-string" >"hello"</span ><span class="hs-special" >)</span ><span > </span ><span id="line-19" ></span ><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 id="line-22" ></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-23" ></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-24" ></span ><span > </span ><span class="hs-identifier" >w</span ><span class="hs-glyph" >@</span ><span class="hs-identifier" >v</span ><span class="hs-glyph" >@</span ><span class="hs-number" >4.5</span ><span > </span ><span id="line-25" ></span ><span > </span ><span class="hs-special" >|]</span ><span > </span ><span id="line-26" ></span ><span > </span ><span id="line-27" ></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-28" ></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-29" ></span ><span > </span ><span class="hs-special" >[</span ><span > </span ><span class="hs-special" >(</span ><span class="hs-number" >1</span ><span > </span ><span class="hs-operator" >+</span ><span > </span ><span class="hs-special" >$</span ><span class="hs-identifier" >anExpression2</span ><span class="hs-special" >,</span ><span > </span ><span class="hs-string" >"world"</span ><span class="hs-special" >)</span ><span > </span ><span class="hs-special" >]</span ><span > </span ><span id="line-30" ></span ><span > </span ><span class="hs-special" >|]</span ><span > </span ><span id="line-31" ></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="hs-number" >1</span ><span > </span ><span class="hs-operator" >+</span ><span > </span ><span class="hs-identifier" >round</span ><span > </span ><span class="hs-identifier" >pi</span ><span class="hs-special" >)</span ><span > </span ><span class="hs-special" >|]</span ><span > </span ><span id="line-32" ></span ><span > </span ><span id="line-33" ></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-34" ></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-35" ></span ><span > </span ><span class="hs-special" >[</span ><span > </span ><span class="hs-special" >(</span ><span class="hs-identifier" >Double</span ><span class="hs-special" >,</span ><span > </span ><span class="hs-identifier" >String</span ><span class="hs-special" >)</span ><span > </span ><span class="hs-special" >]</span ><span > </span ><span id="line-36" ></span ><span > </span ><span class="hs-special" >|]</span ><span > </span ><span id="line-37" ></span ><span > </span ><span id="line-38" ></span ><span > </span ><span id="line-39" ></span ><span > </span ><span id="line-40" ></span ></pre ></body ></html >