aboutsummaryrefslogblamecommitdiff
path: root/hypsrc-test/ref/src/TemplateHaskellQuasiquotes.html
blob: afa305746367ea16b528c3a6e46a2308379299fc (plain) (tree)
1
2
3
4
5
6
7
8
9







                                                          
                                         



                        
                                             



                        



                        











                                       
                        


             
                        










                                  
                        


             
                        


















                                                      
                        





















                                                          
                         

                 




                                            




                             
                               







                                                        










                               


                                          


                               


                                          







                               
                         

                 






                                                    
              
                               







                                                           




                             
                               







                                                               

            
                         






                               
                         


             
                         


















                                                         
                         





















                                                             
                         





                               






                                             

            
                         





                               






                                             

            
                         







                               






                                             


                               






                                             



                               
                         









                               
                               







                                                                 


                               
                          
                              
                                



                               
                         






                               
                         






                               
                         


             
                         


















                                                               
                         





















                                                                   
                         

                 






                                             
                             






                                             
                             
                          
                              
                  

            
                         






                               
                         


             
                         




























                                                              
                         





















                                                                 
                         







                               
                          
                              
                
              


                                        
              
                               







                                                                


                               
                          
                              
                                







                               
                         






                               
                         






















                                                                  
                          
                              
                
              


                                        
              


                                          
              


                                          







                               
                         


             
                         


















                                                      
                         





















                                                          
                         







                               


                                          


                               


                                          







                               
                         






                               
                         


             
                         
             


























                                                           

            
                         
             



























                                                               

            
                         
             
















































































































                                                              

            
 
<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
>