<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="annot" ><span class="hs-comment" >-- | Quoter for constructing multiline string literals</span ></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 a. a -> Q a 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 a. 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 >