blob: 38dfb97e9e6b84876c61c3dac0b3004b8d6c8346 (
plain) (
tree)
|
|
<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
>
|