X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FPprTyThing.hs;h=ea974957c8be45464149658291bbb0a3ed343707;hb=2c92736ea5a4aedf263a77d58c6e9b032a05b7ef;hp=63549841596b2fdb7494fd11a215833fa2580cb7;hpb=2a6d497b719b39d7d7d73051f3baa783db343abb;p=ghc-hetmet.git diff --git a/compiler/main/PprTyThing.hs b/compiler/main/PprTyThing.hs index 6354984..ea97495 100644 --- a/compiler/main/PprTyThing.hs +++ b/compiler/main/PprTyThing.hs @@ -67,7 +67,7 @@ pprTyThingHdr exts (ATyCon tyCon) = pprTyConHdr exts tyCon pprTyThingHdr exts (AClass cls) = pprClassHdr exts cls pprTyConHdr exts tyCon = - ptext keyword <+> ppr_bndr tyCon <+> hsep (map ppr vars) + addFamily (ptext keyword) <+> ppr_bndr tyCon <+> hsep (map ppr vars) where vars | GHC.isPrimTyCon tyCon || GHC.isFunTyCon tyCon = take (GHC.tyConArity tyCon) GHC.alphaTyVars @@ -77,6 +77,10 @@ pprTyConHdr exts tyCon = | GHC.isNewTyCon tyCon = SLIT("newtype") | otherwise = SLIT("data") + addFamily keytext + | GHC.isOpenTyCon tyCon = keytext <> ptext SLIT(" family") + | otherwise = keytext + pprDataConSig exts dataCon = ppr_bndr dataCon <+> dcolon <+> pprType exts (GHC.dataConType dataCon) @@ -109,8 +113,12 @@ pprType False ty = ppr (GHC.dropForAlls ty) pprTyCon exts tyCon | GHC.isSynTyCon tyCon - = let rhs_type = GHC.synTyConRhs tyCon - in hang (pprTyConHdr exts tyCon <+> equals) 2 (pprType exts rhs_type) + = if GHC.isOpenTyCon tyCon + then pprTyConHdr exts tyCon <+> dcolon <+> + pprType exts (GHC.synTyConResKind tyCon) + else + let rhs_type = GHC.synTyConType tyCon + in hang (pprTyConHdr exts tyCon <+> equals) 2 (pprType exts rhs_type) | otherwise = pprAlgTyCon exts tyCon (const True) (const True) @@ -131,13 +139,12 @@ pprDataCon exts dataCon = pprAlgTyCon exts tyCon (== dataCon) (const True) where tyCon = GHC.dataConTyCon dataCon pprDataConDecl exts gadt_style show_label dataCon - = error "kevind stub" -{- | not gadt_style = ppr_fields tys_w_strs | otherwise = ppr_bndr dataCon <+> dcolon <+> sep [ ppr_tvs, GHC.pprThetaArrow theta, pp_tau ] where - (tyvars, theta, argTypes, tyCon) = GHC.dataConSig dataCon + (tyvars, theta, argTypes) = GHC.dataConSig dataCon + tyCon = GHC.dataConTyCon dataCon labels = GHC.dataConFieldLabels dataCon res_tys = dataConResTys dataCon qualVars = filter (flip notElem (GHC.tyConTyVars tyCon)) tyvars @@ -176,7 +183,7 @@ pprDataConDecl exts gadt_style show_label dataCon = ppr_bndr dataCon <+> braces (sep (punctuate comma (ppr_trim maybe_show_label (zip labels fields)))) --} + pprClass exts cls | null methods = pprClassHdr exts cls