X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FhsSyn%2FHsImpExp.lhs;h=dd24aedb2b4704eeffcea2cc83d92e0b14bc2795;hb=2b8358cfe8b6399874090c099e3b96e932c6ccbb;hp=bc76b94296a52eec655ba2db11563d60390bf174;hpb=a197839ee00c1aa514727cd84e62c2aa3001e528;p=ghc-hetmet.git diff --git a/compiler/hsSyn/HsImpExp.lhs b/compiler/hsSyn/HsImpExp.lhs index bc76b94..dd24aed 100644 --- a/compiler/hsSyn/HsImpExp.lhs +++ b/compiler/hsSyn/HsImpExp.lhs @@ -12,15 +12,18 @@ HsImpExp: Abstract syntax: imports, exports, interfaces -- any warnings in the module. See -- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings -- for details +{-# LANGUAGE DeriveDataTypeable #-} module HsImpExp where import Module ( ModuleName ) -import HsDoc ( HsDoc ) +import HsDoc ( HsDocString ) import Outputable import FastString import SrcLoc ( Located(..) ) + +import Data.Data \end{code} %************************************************************************ @@ -42,7 +45,7 @@ data ImportDecl name ideclQualified :: Bool, -- ^ True => qualified ideclAs :: Maybe ModuleName, -- ^ as Module ideclHiding :: Maybe (Bool, [LIE name]) -- ^ (True => hiding, names) - } + } deriving (Data, Typeable) \end{code} \begin{code} @@ -59,16 +62,17 @@ instance (Outputable name) => Outputable (ImportDecl name) where pp_qual True = ptext (sLit "qualified") pp_as Nothing = empty - pp_as (Just a) = ptext (sLit "as ") <+> ppr a + pp_as (Just a) = ptext (sLit "as") <+> ppr a ppr_imp True = ptext (sLit "{-# SOURCE #-}") ppr_imp False = empty - pp_spec Nothing = empty - pp_spec (Just (False, spec)) - = parens (interpp'SP spec) - pp_spec (Just (True, spec)) - = ptext (sLit "hiding") <+> parens (interpp'SP spec) + pp_spec Nothing = empty + pp_spec (Just (False, ies)) = ppr_ies ies + pp_spec (Just (True, ies)) = ptext (sLit "hiding") <+> ppr_ies ies + + ppr_ies [] = ptext (sLit "()") + ppr_ies ies = char '(' <+> interpp'SP ies <+> char ')' \end{code} %************************************************************************ @@ -87,9 +91,10 @@ data IE name | IEThingAll name -- ^ Class/Type plus all methods/constructors | IEThingWith name [name] -- ^ Class/Type plus some methods/constructors | IEModuleContents ModuleName -- ^ (Export Only) - | IEGroup Int (HsDoc name) -- ^ Doc section heading - | IEDoc (HsDoc name) -- ^ Some documentation + | IEGroup Int HsDocString -- ^ Doc section heading + | IEDoc HsDocString -- ^ Some documentation | IEDocNamed String -- ^ Reference to named doc + deriving (Data, Typeable) \end{code} \begin{code}