summaryrefslogtreecommitdiff
path: root/compiler/types/Class.lhs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/types/Class.lhs')
-rw-r--r--compiler/types/Class.lhs12
1 files changed, 10 insertions, 2 deletions
diff --git a/compiler/types/Class.lhs b/compiler/types/Class.lhs
index 016ce1bfbe..fb6b901cf3 100644
--- a/compiler/types/Class.lhs
+++ b/compiler/types/Class.lhs
@@ -5,9 +5,11 @@
\begin{code}
module Class (
- Class, ClassOpItem, FunDep,
+ Class, ClassOpItem,
DefMeth (..),
+ FunDep, pprFundeps,
+
mkClass, classTyVars, classArity,
classKey, className, classSelIds, classTyCon, classMethods,
classBigSig, classExtraBigSig, classTvsFds, classSCTheta
@@ -159,6 +161,12 @@ instance Outputable DefMeth where
ppr DefMeth = text "{- has default method -}"
ppr GenDefMeth = text "{- has generic method -}"
ppr NoDefMeth = empty -- No default method
-\end{code}
+pprFundeps :: Outputable a => [FunDep a] -> SDoc
+pprFundeps [] = empty
+pprFundeps fds = hsep (ptext SLIT("|") : punctuate comma (map ppr_fd fds))
+ where
+ ppr_fd (us, vs) = hsep [interppSP us, ptext SLIT("->"),
+ interppSP vs]
+\end{code}