X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypes%2FClass.lhs;h=5e8a4d4bddd7c7a6f7a13fff43622349b04fa0d1;hp=e7bda631767b775503e30d9de093a16715df8650;hb=f278f0676579f67075033a4f9857715909c4b71e;hpb=ef6e8211dee59eb7fa80a242391b89b52bd57f80 diff --git a/compiler/types/Class.lhs b/compiler/types/Class.lhs index e7bda63..5e8a4d4 100644 --- a/compiler/types/Class.lhs +++ b/compiler/types/Class.lhs @@ -17,6 +17,8 @@ module Class ( classBigSig, classExtraBigSig, classTvsFds, classSCTheta ) where +#include "Typeable.h" + import {-# SOURCE #-} TyCon ( TyCon ) import {-# SOURCE #-} TypeRep ( PredType ) @@ -24,8 +26,11 @@ import Var import Name import BasicTypes import Unique +import Util import Outputable import FastString + +import qualified Data.Data as Data \end{code} %************************************************************************ @@ -178,5 +183,14 @@ pprFundeps fds = hsep (ptext (sLit "|") : punctuate comma (map pprFunDep fds)) pprFunDep :: Outputable a => FunDep a -> SDoc pprFunDep (us, vs) = hsep [interppSP us, ptext (sLit "->"), interppSP vs] + +instance Data.Typeable Class where + typeOf _ = Data.mkTyConApp (Data.mkTyCon "Class") [] + +instance Data.Data Class where + -- don't traverse? + toConstr _ = abstractConstr "Class" + gunfold _ _ = error "gunfold" + dataTypeOf _ = mkNoRepType "Class" \end{code}