blob: 53c05de1f321128219d6ab43bc99e7d07535293c (
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 Haskell2010 #-}</span
><span
>
</span
><span id="line-2"
></span
><span class="hs-keyword"
>module</span
><span
> </span
><span class="hs-identifier"
>Quasiquoter</span
><span
> </span
><span class="hs-special"
>(</span
><span
> </span
><span class="annot"
><a href="Quasiquoter.html#string"
><span class="hs-identifier"
>string</span
></a
></span
><span
> </span
><span class="hs-special"
>)</span
><span
> </span
><span class="hs-keyword"
>where</span
><span
>
</span
><span id="line-3"
></span
><span
>
</span
><span id="line-4"
></span
><span class="hs-keyword"
>import</span
><span
> </span
><span class="annot"
><span class="hs-identifier"
>Language.Haskell.TH.Quote</span
></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.Syntax</span
></span
><span
>
</span
><span id="line-6"
></span
><span
>
</span
><span id="line-7"
></span
><span class="hs-comment"
>-- | Quoter for constructing multiline string literals</span
><span
>
</span
><span id="line-8"
></span
><span class="annot"
><a href="Quasiquoter.html#string"
><span class="hs-identifier hs-type"
>string</span
></a
></span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
><span class="annot"
><span class="hs-identifier hs-type"
>QuasiQuoter</span
></span
><span
>
</span
><span id="line-9"
></span
><span id="string"
><span class="annot"
><span class="annottext"
>string :: QuasiQuoter
</span
><a href="Quasiquoter.html#string"
><span class="hs-identifier hs-var hs-var"
>string</span
></a
></span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="hs-identifier hs-type"
>QuasiQuoter</span
></span
><span
>
</span
><span id="line-10"
></span
><span
> </span
><span class="hs-special"
>{</span
><span
> </span
><span class="annot"
><span class="annottext"
>quoteExp :: String -> Q Exp
</span
><span class="hs-identifier hs-var"
>quoteExp</span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>Exp -> Q Exp
forall (f :: * -> *) a. Applicative f => a -> f a
</span
><span class="hs-identifier hs-var"
>pure</span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>(Exp -> Q Exp) -> (String -> Exp) -> String -> Q Exp
forall b c a. (b -> c) -> (a -> b) -> a -> c
</span
><span class="hs-operator hs-var"
>.</span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>Lit -> Exp
</span
><span class="hs-identifier hs-var"
>LitE</span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>(Lit -> Exp) -> (String -> Lit) -> String -> Exp
forall b c a. (b -> c) -> (a -> b) -> a -> c
</span
><span class="hs-operator hs-var"
>.</span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>String -> Lit
</span
><span class="hs-identifier hs-var"
>StringL</span
></span
><span
>
</span
><span id="line-11"
></span
><span
> </span
><span class="hs-special"
>,</span
><span
> </span
><span class="annot"
><span class="annottext"
>quotePat :: String -> Q Pat
</span
><span class="hs-identifier hs-var"
>quotePat</span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>String -> Q Pat
forall a. String -> Q a
</span
><a href="#"
><span class="hs-identifier hs-var"
>invalidDomain</span
></a
></span
><span
>
</span
><span id="line-12"
></span
><span
> </span
><span class="hs-special"
>,</span
><span
> </span
><span class="annot"
><span class="annottext"
>quoteType :: String -> Q Type
</span
><span class="hs-identifier hs-var"
>quoteType</span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>String -> Q Type
forall a. String -> Q a
</span
><a href="#"
><span class="hs-identifier hs-var"
>invalidDomain</span
></a
></span
><span
>
</span
><span id="line-13"
></span
><span
> </span
><span class="hs-special"
>,</span
><span
> </span
><span class="annot"
><span class="annottext"
>quoteDec :: String -> Q [Dec]
</span
><span class="hs-identifier hs-var"
>quoteDec</span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>String -> Q [Dec]
forall a. String -> Q a
</span
><a href="#"
><span class="hs-identifier hs-var"
>invalidDomain</span
></a
></span
><span
>
</span
><span id="line-14"
></span
><span
> </span
><span class="hs-special"
>}</span
><span
>
</span
><span id="line-15"
></span
><span
> </span
><span class="hs-keyword"
>where</span
><span
>
</span
><span id="line-16"
></span
><span
> </span
><span id=""
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>invalidDomain</span
></a
></span
><span
> </span
><span class="hs-glyph"
>::</span
><span
> </span
><span class="annot"
><span class="hs-identifier hs-type"
>String</span
></span
><span
> </span
><span class="hs-glyph"
>-></span
><span
> </span
><span class="annot"
><span class="hs-identifier hs-type"
>Q</span
></span
><span
> </span
><span class="annot"
><a href="#"
><span class="hs-identifier hs-type"
>a</span
></a
></span
></span
><span
>
</span
><span id="line-17"
></span
><span
> </span
><span id=""
><span class="annot"
><span class="annottext"
>invalidDomain :: forall a. String -> Q a
</span
><a href="#"
><span class="hs-identifier hs-var hs-var"
>invalidDomain</span
></a
></span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>String
</span
><span class="hs-identifier"
>_</span
></span
><span
> </span
><span class="hs-glyph"
>=</span
><span
> </span
><span class="annot"
><span class="annottext"
>String -> Q a
forall (m :: * -> *) a. MonadFail m => String -> m a
</span
><span class="hs-identifier hs-var"
>fail</span
></span
><span
> </span
><span class="annot"
><span class="annottext"
>String
</span
><span class="hs-string"
>"stringQuoter: only valid in expression context"</span
></span
><span
>
</span
><span id="line-18"
></span
></pre
></body
></html
>
|