Fix Trac #4127 (and hence #4173)
[ghc-hetmet.git] / compiler / types / Class.lhs
index 5e8a4d4..dc7cd91 100644 (file)
@@ -14,7 +14,7 @@ module Class (
 
        mkClass, classTyVars, classArity,
        classKey, className, classATs, classSelIds, classTyCon, classMethods,
-       classBigSig, classExtraBigSig, classTvsFds, classSCTheta
+       classOpItems,classBigSig, classExtraBigSig, classTvsFds, classSCTheta
     ) where
 
 #include "Typeable.h"
@@ -71,7 +71,7 @@ type ClassOpItem = (Id, DefMeth)
        -- Default-method info
 
 data DefMeth = NoDefMeth               -- No default method
-            | DefMeth                  -- A polymorphic default method
+            | DefMeth Name             -- A polymorphic default method
             | GenDefMeth               -- A generic default method
              deriving Eq  
 \end{code}
@@ -121,6 +121,9 @@ classMethods :: Class -> [Id]
 classMethods (Class {classOpStuff = op_stuff})
   = [op_sel | (op_sel, _) <- op_stuff]
 
+classOpItems :: Class -> [ClassOpItem]
+classOpItems (Class {classOpStuff = op_stuff}) = op_stuff
+
 classTvsFds :: Class -> ([TyVar], [FunDep TyVar])
 classTvsFds c
   = (classTyVars c, classFunDeps c)
@@ -173,8 +176,8 @@ instance Show Class where
     showsPrec p c = showsPrecSDoc p (ppr c)
 
 instance Outputable DefMeth where
-    ppr DefMeth     =  text "{- has default method -}"
-    ppr GenDefMeth  =  text "{- has generic method -}"
+    ppr (DefMeth n) =  ptext (sLit "Default method") <+> ppr n
+    ppr GenDefMeth  =  ptext (sLit "Generic default method")
     ppr NoDefMeth   =  empty   -- No default method
 
 pprFundeps :: Outputable a => [FunDep a] -> SDoc