Commit 700dad75 authored by simonpj@microsoft.com's avatar simonpj@microsoft.com
Browse files

Fix Trac #2138: print the 'stupid theta' of a data type

parent d139f68b
......@@ -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)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment