mkClass, classTyVars, classArity,
classKey, className, classATs, classSelIds, classTyCon, classMethods,
- classBigSig, classExtraBigSig, classTvsFds, classSCTheta
+ classOpItems,classBigSig, classExtraBigSig, classTvsFds, classSCTheta
) where
#include "Typeable.h"
-- 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}
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)
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