Abstract out a Ppr Inline instance
authorIan Lynagh <igloo@earth.li>
Tue, 22 May 2012 14:41:40 +0000 (15:41 +0100)
committerIan Lynagh <igloo@earth.li>
Tue, 22 May 2012 14:41:40 +0000 (15:41 +0100)
Language/Haskell/TH/Ppr.hs

index 89fd3df..8255f77 100644 (file)
@@ -326,10 +326,7 @@ instance Ppr Foreign where
 instance Ppr Pragma where
     ppr (InlineP n (InlineSpec inline conlike activation))
        = text "{-#"
-     <+> text (case inline of
-                 NoInline  -> "NOINLINE"
-                 Inline    -> "INLINE"
-                 Inlinable -> "INLINABLE")
+     <+> ppr inline
      <+> (if conlike then text "CONLIKE" else empty)
      <+> ppr_activation activation 
      <+> ppr n
@@ -342,11 +339,7 @@ instance Ppr Pragma where
              ]
     ppr (SpecialiseP n ty (Just (InlineSpec inline _conlike activation)))
        = sep [ text "{-# SPECIALISE" <+> 
-               text (case inline of
-                       NoInline  -> "NOINLINE"
-                       Inline    -> "INLINE"
-                       Inlinable -> "INLINABLE") <+>
-               ppr_activation activation
+               ppr inline <+> ppr_activation activation
              , ppr n <+> text "::"
              , ppr ty
              , text "#-}"
@@ -359,6 +352,12 @@ ppr_activation (Just (beforeFrom, i))
 ppr_activation Nothing = empty
 
 ------------------------------
+instance Ppr Inline where
+    ppr NoInline  = text "NOINLINE"
+    ppr Inline    = text "INLINE"
+    ppr Inlinable = text "INLINABLE"
+
+------------------------------
 instance Ppr Clause where
     ppr (Clause ps rhs ds) = hsep (map (pprPat appPrec) ps) <+> pprBody True rhs
                              $$ where_clause ds