X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FhsSyn%2FHsDecls.lhs;h=dff8ce730199f7d9b7ba2883f293afa9572d7a09;hb=5e4375adca19f66803c3ad47fb1ba2c2ac6b4b62;hp=dc4bac71eebb3e231a268cd4dc3d663bb7615d99;hpb=241c6ba59c89d491aa4087f754dfcbbca26163f4;p=ghc-hetmet.git diff --git a/compiler/hsSyn/HsDecls.lhs b/compiler/hsSyn/HsDecls.lhs index dc4bac7..dff8ce7 100644 --- a/compiler/hsSyn/HsDecls.lhs +++ b/compiler/hsSyn/HsDecls.lhs @@ -221,16 +221,25 @@ instance OutputableBndr name => Outputable (HsGroup name) where hs_fords = foreign_decls, hs_defds = default_decls, hs_ruleds = rule_decls }) - = vcat [ppr_ds fix_decls, ppr_ds default_decls, - ppr_ds deprec_decls, ppr_ds ann_decls, - ppr_ds rule_decls, - ppr val_decls, - ppr_ds tycl_decls, ppr_ds inst_decls, - ppr_ds deriv_decls, - ppr_ds foreign_decls] + = vcat_mb empty + [ppr_ds fix_decls, ppr_ds default_decls, + ppr_ds deprec_decls, ppr_ds ann_decls, + ppr_ds rule_decls, + if isEmptyValBinds val_decls + then Nothing + else Just (ppr val_decls), + ppr_ds tycl_decls, ppr_ds inst_decls, + ppr_ds deriv_decls, + ppr_ds foreign_decls] where - ppr_ds [] = empty - ppr_ds ds = blankLine $$ vcat (map ppr ds) + ppr_ds [] = Nothing + ppr_ds ds = Just (vcat (map ppr ds)) + + vcat_mb :: SDoc -> [Maybe SDoc] -> SDoc + -- Concatenate vertically with white-space between non-blanks + vcat_mb _ [] = empty + vcat_mb gap (Nothing : ds) = vcat_mb gap ds + vcat_mb gap (Just d : ds) = gap $$ d $$ vcat_mb blankLine ds data SpliceDecl id = SpliceDecl -- Top level splice