X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypes%2FType.lhs;h=147f54678b213394941f49d0e1cb7f14b4a24bb8;hb=3548802de235eca280982270463db84910ee3748;hp=d81278ab7922badf984b2d8f177e72353ac224f4;hpb=84923cc7de2a93c22a2f72daf9ac863959efae13;p=ghc-hetmet.git diff --git a/compiler/types/Type.lhs b/compiler/types/Type.lhs index d81278a..147f546 100644 --- a/compiler/types/Type.lhs +++ b/compiler/types/Type.lhs @@ -55,7 +55,7 @@ module Type ( -- Source types predTypeRep, mkPredTy, mkPredTys, - tyConOrigHead, + tyConOrigHead, pprSourceTyCon, -- Newtypes splitRecNewType_maybe, newTyConInstRhs, @@ -609,6 +609,13 @@ tyConOrigHead :: TyCon -> (TyCon, [Type]) tyConOrigHead tycon = case tyConFamInst_maybe tycon of Nothing -> (tycon, mkTyVarTys (tyConTyVars tycon)) Just famInst -> famInst + +-- Pretty prints a tycon, using the family instance in case of a +-- representation tycon. +pprSourceTyCon tycon | Just (repTyCon, tys) <- tyConFamInst_maybe tycon = + ppr $ repTyCon `TyConApp` tys -- can't be FunTyCon + | otherwise = + ppr tycon \end{code}