Fix a long-standing infelicity in the type pretty printer
authorsimonpj@microsoft.com <unknown>
Wed, 16 Dec 2009 08:45:13 +0000 (08:45 +0000)
committersimonpj@microsoft.com <unknown>
Wed, 16 Dec 2009 08:45:13 +0000 (08:45 +0000)
We weren't parenthesising
   List (C Int)
correctly, when (C Int) is a PredTy

compiler/types/TypeRep.lhs

index a5176ce..1660267 100644 (file)
@@ -471,7 +471,8 @@ ppr_type :: Prec -> Type -> SDoc
 ppr_type _ (TyVarTy tv)                -- Note [Infix type variables]
   | isSymOcc (getOccName tv)  = parens (ppr tv)
   | otherwise                = ppr tv
-ppr_type _ (PredTy pred)      = ifPprDebug (ptext (sLit "<pred>")) <> (ppr pred)
+ppr_type p (PredTy pred)      = maybeParen p TyConPrec $
+                                ifPprDebug (ptext (sLit "<pred>")) <> (ppr pred)
 ppr_type p (TyConApp tc tys)  = ppr_tc_app p tc tys
 
 ppr_type p (AppTy t1 t2) = maybeParen p TyConPrec $