Repository : ssh://darcs.haskell.org//srv/darcs/packages/template-haskell On branch : master
http://hackage.haskell.org/trac/ghc/changeset/55fdd9e2b6144496fe48201c185b5962de074a4b >--------------------------------------------------------------- commit 55fdd9e2b6144496fe48201c185b5962de074a4b Author: Simon Peyton Jones <[email protected]> Date: Wed Mar 14 17:36:33 2012 +0000 Add fixity declarations to Template Haskell (Trac #1541) >--------------------------------------------------------------- Language/Haskell/TH/Lib.hs | 9 +++++++++ Language/Haskell/TH/Ppr.hs | 7 ++++--- Language/Haskell/TH/Syntax.hs | 2 ++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Language/Haskell/TH/Lib.hs b/Language/Haskell/TH/Lib.hs index 92f3dd4..d98da91 100644 --- a/Language/Haskell/TH/Lib.hs +++ b/Language/Haskell/TH/Lib.hs @@ -354,6 +354,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 diff --git a/Language/Haskell/TH/Ppr.hs b/Language/Haskell/TH/Ppr.hs index 53f43ff..5e8ad56 100644 --- a/Language/Haskell/TH/Ppr.hs +++ b/Language/Haskell/TH/Ppr.hs @@ -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 diff --git a/Language/Haskell/TH/Syntax.hs b/Language/Haskell/TH/Syntax.hs index 9c464cf..61bbde8 100644 --- a/Language/Haskell/TH/Syntax.hs +++ b/Language/Haskell/TH/Syntax.hs @@ -916,6 +916,8 @@ data Dec | SigD Name Type -- ^ @{ length :: [a] -> Int }@ | ForeignD Foreign + | InfixD Fixity Name -- ^ @{ infix 3 foo }@ + -- | pragmas | PragmaD Pragma -- ^ @{ {-# INLINE [1] foo #-} }@ _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
