X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypes%2FTyCon.lhs;h=d536f59a6a79e61abbaa05c72f47ea53bc33edd8;hp=15be3e2cef672270d7177d5d55c94e79b9d33ede;hb=d5c4754dcb857be7b9f4dbf6482e6050a9cd0991;hpb=b5d068a262d7afe153c12ed593cb8bbb39abe932 diff --git a/compiler/types/TyCon.lhs b/compiler/types/TyCon.lhs index 15be3e2..d536f59 100644 --- a/compiler/types/TyCon.lhs +++ b/compiler/types/TyCon.lhs @@ -550,13 +550,15 @@ isDataTyCon tc@(AlgTyCon {algTcRhs = rhs}) OpenNewTyCon -> False NewTyCon {} -> False AbstractTyCon -> pprPanic "isDataTyCon" (ppr tc) - isDataTyCon (TupleTyCon {tyConBoxed = boxity}) = isBoxed boxity isDataTyCon other = False isNewTyCon :: TyCon -> Bool -isNewTyCon (AlgTyCon {algTcRhs = NewTyCon {}}) = True -isNewTyCon other = False +isNewTyCon (AlgTyCon {algTcRhs = rhs}) = case rhs of + OpenNewTyCon -> True + NewTyCon {} -> True + _ -> False +isNewTyCon other = False isProductTyCon :: TyCon -> Bool -- A "product" tycon @@ -746,7 +748,10 @@ newTyConRep (AlgTyCon {tyConTyVars = tvs, algTcRhs = NewTyCon { nt_rep = rep }}) newTyConRep tycon = pprPanic "newTyConRep" (ppr tycon) newTyConCo :: TyCon -> Maybe TyCon -newTyConCo (AlgTyCon {tyConTyVars = tvs, algTcRhs = NewTyCon { nt_co = co }}) = co +newTyConCo (AlgTyCon {tyConTyVars = tvs, algTcRhs = NewTyCon { nt_co = co }}) + = co +newTyConCo (AlgTyCon {tyConTyVars = tvs, algTcRhs = OpenNewTyCon}) + = Nothing newTyConCo tycon = pprPanic "newTyConCo" (ppr tycon) tyConPrimRep :: TyCon -> PrimRep