From 700dad75ea40342455b7f75d348e1dcd83fc3755 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Thu, 6 Mar 2008 13:46:51 +0000 Subject: [PATCH] Fix Trac #2138: print the 'stupid theta' of a data type --- compiler/main/PprTyThing.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/main/PprTyThing.hs b/compiler/main/PprTyThing.hs index 2a7abb4..c379d97 100644 --- a/compiler/main/PprTyThing.hs +++ b/compiler/main/PprTyThing.hs @@ -28,7 +28,7 @@ module PprTyThing ( import qualified GHC import GHC ( TyThing(..) ) -import TyCon ( tyConFamInst_maybe ) +import TyCon ( tyConFamInst_maybe, isAlgTyCon, tyConStupidTheta ) import Type ( TyThing(..), tidyTopType, pprTypeApp ) import TcType ( tcMultiSplitSigmaTy, mkPhiTy ) import SrcLoc ( SrcSpan ) @@ -86,7 +86,7 @@ pprTyConHdr pefas tyCon | Just (fam_tc, tys) <- tyConFamInst_maybe tyCon = ptext keyword <+> ptext SLIT("instance") <+> pprTypeApp tyCon (ppr_bndr tyCon) tys | otherwise - = ptext keyword <+> opt_family <+> ppr_bndr tyCon <+> hsep (map ppr vars) + = ptext keyword <+> opt_family <+> opt_stupid <+> ppr_bndr tyCon <+> hsep (map ppr vars) where vars | GHC.isPrimTyCon tyCon || GHC.isFunTyCon tyCon = take (GHC.tyConArity tyCon) GHC.alphaTyVars @@ -100,6 +100,10 @@ pprTyConHdr pefas tyCon | GHC.isOpenTyCon tyCon = ptext SLIT("family") | otherwise = empty + opt_stupid -- The "stupid theta" part of the declaration + | isAlgTyCon tyCon = GHC.pprThetaArrow (tyConStupidTheta tyCon) + | otherwise = empty -- Returns 'empty' if null theta + pprDataConSig pefas dataCon = ppr_bndr dataCon <+> dcolon <+> pprTypeForUser pefas (GHC.dataConType dataCon) -- 1.7.10.4