Add Outputable.blankLine and use it
[ghc-hetmet.git] / compiler / hsSyn / HsDecls.lhs
index c770386..273cc98 100644 (file)
@@ -39,7 +39,7 @@ module HsDecls (
   SpliceDecl(..),
   -- ** Foreign function interface declarations
   ForeignDecl(..), LForeignDecl, ForeignImport(..), ForeignExport(..),
-  CImportSpec(..), FoType(..),
+  CImportSpec(..),
   -- ** Data-constructor declarations
   ConDecl(..), LConDecl, ResType(..), 
   HsConDeclDetails, hsConDeclArgTys, hsConDeclsNames,
@@ -101,7 +101,7 @@ data HsDecl id
   | AnnD       (AnnDecl id)
   | RuleD      (RuleDecl id)
   | SpliceD    (SpliceDecl id)
-  | DocD       (DocDecl id)
+  | DocD       (DocDecl)
 
 
 -- NB: all top-level fixity decls are contained EITHER
@@ -136,7 +136,7 @@ data HsGroup id
        hs_annds   :: [LAnnDecl id],
        hs_ruleds :: [LRuleDecl id],
 
-       hs_docs   :: [LDocDecl id]
+       hs_docs   :: [LDocDecl]
   }
 
 emptyGroup, emptyRdrGroup, emptyRnGroup :: HsGroup a
@@ -225,7 +225,7 @@ instance OutputableBndr name => Outputable (HsGroup name) where
                ppr_ds foreign_decls]
        where
          ppr_ds [] = empty
-         ppr_ds ds = text "" $$ vcat (map ppr ds)
+         ppr_ds ds = blankLine $$ vcat (map ppr ds)
 
 data SpliceDecl id = SpliceDecl (Located (HsExpr id))  -- Top level splice
 
@@ -401,8 +401,7 @@ type LTyClDecl name = Located (TyClDecl name)
 data TyClDecl name
   = ForeignType { 
                tcdLName    :: Located name,
-               tcdExtName  :: Maybe FastString,
-               tcdFoType   :: FoType
+               tcdExtName  :: Maybe FastString
     }
 
 
@@ -477,7 +476,7 @@ data TyClDecl name
                                                        --   only 'TyFamily' and
                                                        --   'TySynonym'; the
                                                         --   latter for defaults
-               tcdDocs    :: [LDocDecl name]           -- ^ Haddock docs
+               tcdDocs    :: [LDocDecl]                -- ^ Haddock docs
     }
 
 data NewOrData
@@ -717,7 +716,7 @@ data ConDecl name
     , con_res       :: ResType name
         -- ^ Result type of the constructor
 
-    , con_doc       :: Maybe (LHsDoc name)
+    , con_doc       :: Maybe LHsDocString
         -- ^ A possible Haddock comment.
 
     , con_old_rec :: Bool   
@@ -841,7 +840,7 @@ data DerivDecl name = DerivDecl (LHsType name)
 
 instance (OutputableBndr name) => Outputable (DerivDecl name) where
     ppr (DerivDecl ty) 
-        = hsep [ptext (sLit "derived instance"), ppr ty]
+        = hsep [ptext (sLit "deriving instance"), ppr ty]
 \end{code}
 
 %************************************************************************
@@ -909,10 +908,6 @@ data ForeignImport = -- import of a C entity
                              FastString      -- name of C header
                              CImportSpec     -- details of the C entity
 
-                     -- import of a .NET function
-                    --
-                  | DNImport DNCallSpec
-
 -- details of an external C entity
 --
 data CImportSpec = CLabel    CLabelString     -- import address of a C label
@@ -924,13 +919,6 @@ data CImportSpec = CLabel    CLabelString     -- import address of a C label
 -- convention
 --
 data ForeignExport = CExport  CExportSpec    -- contains the calling convention
-                  | DNExport                -- presently unused
-
--- abstract type imported from .NET
---
-data FoType = DNType           -- In due course we'll add subtype stuff
-           deriving (Eq)       -- Used for equality instance for TyClDecl
-
 
 -- pretty printing of foreign declarations
 --
@@ -944,8 +932,6 @@ instance OutputableBndr name => Outputable (ForeignDecl name) where
        2 (dcolon <+> ppr ty)
 
 instance Outputable ForeignImport where
-  ppr (DNImport                                spec) = 
-    ptext (sLit "dotnet") <+> ppr spec
   ppr (CImport  cconv safety header spec) =
     ppr cconv <+> ppr safety <+> 
     char '"' <> pprCEntity spec <> char '"'
@@ -963,11 +949,6 @@ instance Outputable ForeignImport where
 instance Outputable ForeignExport where
   ppr (CExport  (CExportStatic lbl cconv)) = 
     ppr cconv <+> char '"' <> ppr lbl <> char '"'
-  ppr (DNExport                          ) = 
-    ptext (sLit "dotnet") <+> ptext (sLit "\"<unused>\"")
-
-instance Outputable FoType where
-  ppr DNType = ptext (sLit "type dotnet")
 \end{code}
 
 
@@ -1019,19 +1000,19 @@ instance OutputableBndr name => Outputable (RuleBndr name) where
 
 \begin{code}
 
-type LDocDecl name = Located (DocDecl name)
+type LDocDecl = Located (DocDecl)
 
-data DocDecl name
-  = DocCommentNext (HsDoc name)
-  | DocCommentPrev (HsDoc name)
-  | DocCommentNamed String (HsDoc name)
-  | DocGroup Int (HsDoc name)
+data DocDecl
+  = DocCommentNext HsDocString
+  | DocCommentPrev HsDocString
+  | DocCommentNamed String HsDocString
+  | DocGroup Int HsDocString
  
 -- Okay, I need to reconstruct the document comments, but for now:
-instance Outputable (DocDecl name) where
+instance Outputable DocDecl where
   ppr _ = text "<document comment>"
 
-docDeclDoc :: DocDecl name -> HsDoc name
+docDeclDoc :: DocDecl -> HsDocString
 docDeclDoc (DocCommentNext d) = d
 docDeclDoc (DocCommentPrev d) = d
 docDeclDoc (DocCommentNamed _ d) = d