Comments only
[ghc-hetmet.git] / compiler / hsSyn / HsImpExp.lhs
index 78e417c..099537f 100644 (file)
@@ -21,7 +21,6 @@ import HsDoc          ( HsDoc )
 import Outputable
 import FastString
 import SrcLoc          ( Located(..) )
-import Char            ( isAlpha )
 \end{code}
 
 %************************************************************************
@@ -36,6 +35,7 @@ type LImportDecl name = Located (ImportDecl name)
 
 data ImportDecl name
   = ImportDecl   (Located ModuleName)          -- module name
+                  (Maybe FastString)            -- package qualifier
                  Bool                          -- True <=> {-# SOURCE #-} import
                  Bool                          -- True => qualified
                  (Maybe ModuleName)            -- as Module
@@ -44,11 +44,14 @@ data ImportDecl name
 
 \begin{code}
 instance (Outputable name) => Outputable (ImportDecl name) where
-    ppr (ImportDecl mod from qual as spec)
+    ppr (ImportDecl mod pkg from qual as spec)
       = hang (hsep [ptext (sLit "import"), ppr_imp from, 
-                    pp_qual qual, ppr mod, pp_as as])
+                    pp_qual qual, pp_pkg pkg, ppr mod, pp_as as])
             4 (pp_spec spec)
       where
+        pp_pkg Nothing  = empty
+        pp_pkg (Just p) = doubleQuotes (ftext p)
+
        pp_qual False   = empty
        pp_qual True    = ptext (sLit "qualified")
 
@@ -65,7 +68,7 @@ instance (Outputable name) => Outputable (ImportDecl name) where
                        = ptext (sLit "hiding") <+> parens (interpp'SP spec)
 
 ideclName :: ImportDecl name -> Located ModuleName
-ideclName (ImportDecl mod_nm _ _ _ _) = mod_nm
+ideclName (ImportDecl mod_nm _ _ _ _ _) = mod_nm
 \end{code}
 
 %************************************************************************
@@ -120,25 +123,4 @@ instance (Outputable name) => Outputable (IE name) where
     ppr (IEDocNamed string)     = text ("<IEDocNamed: " ++ string ++ ">")
 \end{code}
 
-\begin{code}
-pprHsVar :: Outputable name => name -> SDoc
-pprHsVar v | isOperator ppr_v = parens ppr_v
-          | otherwise        = ppr_v
-          where
-            ppr_v = ppr v
-
-isOperator :: SDoc -> Bool
-isOperator ppr_v 
-  = case showSDocUnqual ppr_v of
-        ('(':_)   -> False              -- (), (,) etc
-        ('[':_)   -> False              -- []
-        ('$':c:_) -> not (isAlpha c)    -- Don't treat $d as an operator
-        (':':c:_) -> not (isAlpha c)    -- Don't treat :T as an operator
-        ('_':_)   -> False              -- Not an operator
-        (c:_)     -> not (isAlpha c)    -- Starts with non-alpha
-        _         -> False
-    -- We use (showSDoc (ppr v)), rather than isSymOcc (getOccName v) simply so
-    -- that we don't need NamedThing in the context of all these functions.
-    -- Gruesome, but simple.
-\end{code}