Merge remote-tracking branch 'origin/master' into type-nats
authorIavor S. Diatchki <iavor.diatchki@gmail.com>
Sun, 18 Mar 2012 22:26:11 +0000 (15:26 -0700)
committerIavor S. Diatchki <iavor.diatchki@gmail.com>
Sun, 18 Mar 2012 22:26:11 +0000 (15:26 -0700)
libraries/template-haskell/.gitignore [new file with mode: 0644]
libraries/template-haskell/Language/Haskell/TH/Lib.hs
libraries/template-haskell/Language/Haskell/TH/Ppr.hs
libraries/template-haskell/Language/Haskell/TH/Syntax.hs

diff --git a/libraries/template-haskell/.gitignore b/libraries/template-haskell/.gitignore
new file mode 100644 (file)
index 0000000..8f4d267
--- /dev/null
@@ -0,0 +1,3 @@
+GNUmakefile
+dist-install
+ghc.mk
index 2a9f886..3bf5c60 100644 (file)
@@ -355,6 +355,15 @@ forImpD cc s str n ty
  = do ty' <- ty
       return $ ForeignD (ImportF cc s str n ty')
 
+infixLD :: Int -> Name -> DecQ
+infixLD prec nm = return (InfixD (Fixity prec InfixL) nm)
+
+infixRD :: Int -> Name -> DecQ
+infixRD prec nm = return (InfixD (Fixity prec InfixR) nm)
+
+infixND :: Int -> Name -> DecQ
+infixND prec nm = return (InfixD (Fixity prec InfixN) nm)
+
 pragInlD :: Name -> InlineSpecQ -> DecQ
 pragInlD n ispec 
   = do
index dc2ccae..b63ccf1 100644 (file)
@@ -235,9 +235,10 @@ ppr_dec _  (ClassD ctxt c xs fds ds)
     $$ where_clause ds
 ppr_dec _ (InstanceD ctxt i ds) = text "instance" <+> pprCxt ctxt <+> ppr i
                                   $$ where_clause ds
-ppr_dec _ (SigD f t) = ppr f <+> text "::" <+> ppr t
-ppr_dec _ (ForeignD f) = ppr f
-ppr_dec _ (PragmaD p) = ppr p
+ppr_dec _ (SigD f t)    = ppr f <+> text "::" <+> ppr t
+ppr_dec _ (ForeignD f)  = ppr f
+ppr_dec _ (InfixD fx n) = pprFixity n fx
+ppr_dec _ (PragmaD p)   = ppr p
 ppr_dec isTop (FamilyD flav tc tvs k) 
   = ppr flav <+> maybeFamily <+> ppr tc <+> hsep (map ppr tvs) <+> maybeKind
   where
index 72e644b..ae444d7 100644 (file)
@@ -917,6 +917,8 @@ data Dec
   | SigD Name Type                -- ^ @{ length :: [a] -> Int }@
   | ForeignD Foreign
 
+  | InfixD Fixity Name            -- ^ @{ infix 3 foo }@
+
   -- | pragmas
   | PragmaD Pragma                -- ^ @{ {-# INLINE [1] foo #-} }@